You will be affected more by (each) component of the key (a) of variable length and (b) width [width instead of narrow columns] than the number of components in the key. If MS doesn't break it again in the latest release (they broke Heaps in 2005). A data type does not slow it down; width and, in particular, variable length (any data type). Note that the fixed len column becomes a variable if it is set to Nullable. Variable len columns in indexes are bad news, because the “decompression” bit must be executed at every access to get data.
Obviously, indexed columns should be as narrow as possible, using only fixed columns, not Nullable columns.
In terms of the number of columns in the composite key, I’m sure that one column is faster than seven, but not so much: three thick columns of variable width are much slower than seven thin fixed columns.
The GUID is, of course, a very thick key; GUID plus everything else is very bold; GUID Nullable is Guiness stuff. Unfortunately, this is a knee-jerk reaction to the solution of the IDENTITY problem, which, in turn, is a consequence of the lack of good natural relational keys. Therefore, it is best for you to fix the real problem at the source and choose good natural keys; Avoid IDENTITY avoid the GUID.
Experience and performance tuning, not a hypothesis.
Performancedba
source share