Как уже упоминал Том, поиск по кластерному индексу для одного элемента всегда будет быстрее.Это связано с тем, что кластеризованный индекс - это сами данные, и после того, как вы нашли свою запись в индексе, поиск не требуется.
Основным преимуществом кластеризованного индекса является возможность извлекать «диапазоны» данных (например, «последний»).неделя "или" История заказов по дате ").Поскольку GUID имеет тенденцию равномерно распределяться по столу, вы не сможете получить это преимущество здесь.Кроме того, у каждой таблицы может быть только один кластеризованный индекс, поэтому выбирайте осторожно.
Если вы запрашиваете таблицу с наименьшим количеством запросов для определенного диапазона, то рассматривайте ее как кластеризованный индекс.
Существует также3-й вид, который называется индексом покрытия.Покрывающий индекс состоит из нескольких полей, которые смогут удовлетворить наиболее распространенный запрос.Например, у вас есть таблица USER с идентификатором, Displayname, Password, LogonDate и т. Д., И вам потребуется часто использовать DisplayName, создавая индекс на основе идентификатора, Displayname будет считаться вспомогательным индексом для запроса, подобного
Select Displayname from USER where ID=XYZ
Редактировать: Одна вещь, которую я забыл упомянуть.GUID - довольно большой объект, когда дело доходит до SQL (ну ... 16 байт).Наличие его в качестве кластеризованного индекса заставляет все другие индексы в этой таблице включать 16-байтовый указатель на GUID.Это может сложиться, если у вас есть куча индексов на этой таблице.Кластерный индекс лучше всего, он маленький и уникальный.Вот почему INT такие хорошие.