В SQL Server поддерживает два типа индексов – кластеризованные и некластеризованные, первичные и вторичные индексы.
Кластеризованный индекс определяет физический порядок данных в таблице. Если в кластеризованном индексе определено несколько столбцов, то данные будут храниться в последовательности, соответствующей столбцам: первый столбец, затем следующий столбец и т.д. для каждой таблицы может быть определен только один некластеризованный индекс.
Некластеризованные индекс сам по себе не хранит табличных данных, а хранит указатели на табличные данные как часть ключей индекса; следовательно для одной таблицы может существовать одновременно несколько некластеризованных индексов. Некластеризованные индексы по отношению к базовой таблице хранятся в отдельной структуре – фактически это таблица со скрытым кластеризованным индексом.