Индекс SQL Server - PullRequest
       3

Индекс SQL Server

1 голос
/ 24 августа 2010

SQL Server 2005 с пакетом обновления 3 (SP3) в Windows Server 2008 R2.

Я провел трассировку на стороне сервера и использую DTA (советник по настройке ядра СУБД). В одной таблице DTA предлагает мне создать некластеризованный индекс с ключом кластеризации.,Я имею в виду, что для каждого DTA мне нужно создать составной некластерный индекс с явным ключом индексированного ключа как часть некластеризованного индекса.

Я думал, что на уровне листа индекс без кластера уже включает ключ кластеризации.

MeasurementDataID является первичным ключом и имеет кластеризованный индекс ...

CREAT INDEX IX_NAME(
[MeasurementID] ASC,
[SampleName] ASC,
[MeasurementDataID] ASC )

1 Ответ

0 голосов
/ 24 августа 2010

На уровне листа он включает ключ кластеризации, поэтому индекс, который у вас есть, покроет запрос.

Но если ваш запрос

WHERE MeasurementID = 1 AND SampleName = 'foo' AND MeasurementDataID=10

БезВключение MeasurementDataID все равно потребует сканирования всех записей в индексе, совпадающих с частью WHERE MeasurementID = 1 AND SampleName = 'foo', вместо того, чтобы выполнять поиск целиком, в зависимости от того, насколько избирательны первые два, но это может быть полезно.1011 * Это в основном то же самое решение, которое вам нужно принять при рассмотрении вопроса о добавлении столбца в индекс в качестве включенного столбца или добавлении его в ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...