INCLUDE
добавляет эти поля на уровне листа индекса.По сути, bt-ree не сортируется по этим полям, но как только индекс находит строку с индексированными полями, которые он ищет, он также сразу же получает другие поля.
Если вы используете телефонную книгуаналогично, поля INCLUDED
в индексе телефонной книги (который сортируется по Lastname
, Firstname
) будут иметь значения Phone Number
и Address
- вы не можете искать человека по этим полям, но как только вы получитеПо их названию вы можете их найти.
CLUSTERED
В индексах есть все поля, уже включенные в конструкцию, поэтому INCLUDE
недопустим в CLUSTER
.Вы также не должны беспокоить INCLUDE
кластеризованное поле в некластеризованном индексе, поскольку оно уже неявно присутствует в качестве ключа строки.
Я чаще всего использую поля INCLUDE
для агрегирования.Например, если у меня есть индекс по CalendarDate
и CustomerID
, я могу включить PaidAmt
и получить
MAX(PAidAmt) Where CustomerId = x AND CalendarDate = 1/1/2011
На самом базовом уровне они используются, чтобы избежатьзакладка или поиск по ключу.