No exact recipe exists for the indexing, but some considerations and best practices have to be written:
- Poorly normalized database design cannot be saved by indexes. It's a big mistake of many developers.
- The best candidate column for a clustered B-tree index is the one that contains a simple value like integer, and the value grows with every new record.
- When primary key constraint is created with defaults, a clustered unique index is created behind the scenes. It's a good approach when integers (especially with IDENTITY property set) are used. It's a very bad approach when uniqueidentifier is used as a data type for the primary key.
- It's better not to have a clustered index than to have a bad one.
- In OLTP databases, ...