assuming they're selective enoughThis is the key to such decision, which also depends on how big is the table and how narrow is the key. Now I am working on modifying a table designed like this: it has a PK enforced by a unique nonclustered index, and it is clustered by a foreign key column, which is meant to be 16-byte GUID, but is stored as varchar(50), yes, var-bloody-char(50). There are anywhere between 1 and 500 records per same foreign key value, and the number of records is always in 6 digits. The table also has 6 other nonclustered indexes. Now, if I let this thing to continue, I will have to live with 36 (guid cast as varchar(50)) + 8 (uniquefier) = 44 bytes - 4 = 40 bytes of pure waste per each leaf page index record, totalling 7 * 300,000 * 40 ~ 100 MB of waste. Needless to say, this design is going straight out the window, and the FK becomes actual GUID (16 bytes) and it also becomes a column on the NON-clustered index. PK goes clustering. DMLs are mostly about single FK, so 500/300 K is ~ 0.1 percent to let seek + lookup take place. Again, all we can do is speculate as far as the actual question is concerned.
No one has followed this question yet.