Индексы SQL Server - PullRequest
       5

Индексы SQL Server

3 голосов
/ 17 апреля 2009

В чем разница между сканированием кластеризованного индекса и поиском кластерного индекса?

Ответы [ 4 ]

4 голосов
/ 17 апреля 2009

Сканирование кластеризованного индекса - это сканирование таблицы в таблице с кластерным индексом. По умолчанию первичный ключ является кластеризованным индексом, поэтому в основном это таблица с первичным ключом.

Сканирование кластеризованного индекса происходит, когда предикат содержит столбцы, отличные от первичного ключа (и нет другого доступного индекса для удовлетворения предиката).

Поиск кластеризованного индекса (и поиск некластеризованного индекса) происходит, когда предикат содержит один или несколько столбцов в индексе. Это позволяет обработчику запросов искать диапазон строк на основе индекса без необходимости сканирования.

2 голосов
/ 17 апреля 2009

Сканирование выполняет поиск по каждой записи в индексе, в то время как поиск просто переходит к запрашиваемому элементу, делая поиск намного быстрее. Как правило, следует избегать сканирования, если в этом нет необходимости.

2 голосов
/ 17 апреля 2009

Кластерный индекс SCAN сканирует весь кластерный индекс (= таблица данных) от начала до конца.

Кластерный индекс SEEK сканирует только (надеюсь, небольшую) часть / раздел этого индекса -> намного быстрее!

Марк

1 голос
/ 17 апреля 2009

Поиск используется, когда условие соответствует индексированным данным, чтобы оно могло эффективно использовать индекс, например, в таком запросе, как:

select Name from Table where Group = 42

Поскольку сравнение является прямым значением, его можно легко использовать для определения части индекса, в которой находятся элементы.

Сканирование используется, когда условие является более сложным, так что каждое значение в индексе должно быть оценено, например, в запросе, подобном:

select Name from Table where right(cast(group as varchar), 2) = '00'

Поскольку условие использует вычисленное значение из индекса, которое не может быть легко использовано для выделения части индекса, все элементы должны быть оценены.

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