Когда вы создаёте составной индекс, рассматривайте следующие факты и рекомендации:
Вы можете объединять до 16 колонок в составной индекс. Сумма длины всех колонок составного индекса не может превышать 900 байт.
Все колонки в составном индексе должны быть из одной таблицы, исключая ситуации, когда индекс создаётся на просмотрщик.
Объявляйте сначала уникальные колонки. Первые колонки, описанные в операторе CREATE INDEX, имеют высший приоритет при сортировке.
Оператор WHERE запроса должен ссылаться на первую колонку составного индекса, чтобы оптимизатор запросов использовал составной индекс.
Индекс на колонки (column1, column2) это не то же самое, что (column2, column1). Эти индексы имеют разный порядок.
Используйте составной индекс для повышения производительности запросов и уменьшения количества индексов на таблицу.
Следующий пример создаёт не кластерный составной индекс. Обратите внимание, что колонка OrderID описывается первой, потому что он более избирательный:
USE Northwind
CREATE UNIQUE NONCLUSTERED INDEX U_OrdID_ProdID
ON [Order Details] (OrderID, ProductID)
Вам может потребоваться получение информации о существующем индексе, прежде чем вы создадите, измените или удалите индекс. Вы можете использовать встроенную процедуру sp_helpindex для получения такой информации как имя индекса, тип и опции для определённой таблицы.
Для примера, следующий пример отображает индексы таблицы Customers:
USE Northwind
EXEC sp_helpindex Customers
Результат:
index_name index_description index_keys
---------------------------------------------------------------------------City nonclustered located on PRIMARY City
CompanyName nonclustered located on PRIMARY CompanyName
PK_Customers clustered, unique, primary key located on PRIMARY CustomerID
PostalCode nonclustered located on PRIMARY PostalCode
Region nonclustered located on PRIMARY Region
Сервер SQL предлагает опции, которые могут ускорить создание индекса, а также увеличить производительность индексов.
Вы можете использовать опцию FILLFACTOR для оптимизации производительности операций вставки и обновления на таблице, которые содержат кластерный или не кластерный индекс.
Когда индексная страница становится полной, серверу требуется время на разделения страницы и создания свободного места для новой страницы. Используйте опцию FILLFACTOR для определения процента свободного пространства на листве индексной страницы для оптимизации разделения страницы.
Опция FILLFACTOR доступна, только когда вы создаёте или перестраиваете индекс. Сервер не может динамически поддерживать указанный процент свободного пространства на индексной странице.
Значение FILLFACTOR, который вы указали таблице, зависит от того, как часто данные добавляются или изменяются и вашего производственного окружения. Обычно вы должны:
Использовать маленький процент свободного пространства для процесса онлайновых транзакций (OLTP).
Используйте большое значение FILLFACTOR для окружения SQL Server Analysis Services.
Когда вы используете значение FILLFACTOR, рассматривайте следующие факты и рекомендации:
Значения этой опции изменяются от 1 до 100.
Значение по умолчанию – 0. Это означает, что страница заполняется до 100 процентов. Вы не можете напрямую указать значение 0.
Вы можете изменить это значение с помощью встроенной процедуры sp_configure.
Значение FILLFACTOR указывается в процентах.
Используйте опцию FILLFACTOR для таблиц, в которые часто вставляются данные, или где часто изменяется индексное значение.
Опция PAD_INDEX указывает процент, до которого заполняется не листовые индексные страницы. Вы можете использовать PAD_INDEX опцию только тогда, когда указана опция FILLFACTOR, потому что процентное значение PAD_INDEX зависит от процента, указанного в FILLFACTOR.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.