Clustered indexes sort and store the data rows in the table based on their key values. There can only be one clustered index per table, because the data rows themselves can only be sorted in one order. For more information about clustered index architecture, see Clustered Index Structures
With few exceptions, every table should have a clustered index defined on the column, or columns, that offer the following:
If the clustered index is not created with the UNIQUE property, the Database Engine automatically adds a 4-byte uniqueifier column to the table. When it is required, the Database Engine automatically adds a uniqueifier value to a row to make each key unique. This column and its values are used internally and cannot be seen or accessed by users.
Before you create clustered indexes, understand how your data will be accessed. Consider using a clustered index for queries that do the following:
Generally, you should define the clustered index key with as few columns as possible. Consider columns that have one or more of the following attributes:
Clustered indexes are not a good choice for the following attributes:
There are several index options that can be specified when you create a clustered index. Because clustered indexes are typically quite large, you should give special consideration to the following options: