Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Clustered Index Scan, NonClustered Index Scan, Table Scan  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 487
Если я не ошибаюсь, то:
в первом случае происходит поиск по всем страницам индекса;
во втором поиск по всем страницам индексу, а потом еще и Key LookUp (если индекс не включает в себя все столбцы результирующего набора);
в последнем сканирование таблицы по цепочкам IAM.

Отсюда напрашивается вывод (поправьте, если ошибаюсь):
Если не требуется сортировка, то NonClustered Index Scan - самый медленный способ.

Кто быстрее: Clustered Index Scan или Table Scan?
6 июн 12, 10:58    [12672774]     Ответить | Цитировать Сообщить модератору
 Re: Clustered Index Scan, NonClustered Index Scan, Table Scan  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
Кто быстрее: Clustered Index Scan или Table Scan?


Кластерный индекс, и есть таблица, собственно. Делайте выводы...

автор
Если я не ошибаюсь, то:
в первом случае происходит поиск по всем страницам индекса;
во втором поиск по всем страницам индексу, а потом еще и Key LookUp (если индекс не включает в себя все столбцы результирующего набора);
в последнем сканирование таблицы по цепочкам IAM.


Для абстрактного запроса?
6 июн 12, 11:32    [12673093]     Ответить | Цитировать Сообщить модератору
 Re: Clustered Index Scan, NonClustered Index Scan, Table Scan  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Шамиль Фаридович
Отсюда напрашивается вывод (поправьте, если ошибаюсь):
Если не требуется сортировка, то NonClustered Index Scan - самый медленный способ.
Ошибаетесь.
6 июн 12, 21:11    [12678227]     Ответить | Цитировать Сообщить модератору
 Re: Clustered Index Scan, NonClustered Index Scan, Table Scan  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Шамиль Фаридович
Отсюда напрашивается вывод (поправьте, если ошибаюсь):
Если не требуется сортировка, то NonClustered Index Scan - самый медленный способ.

Как правило, некластерный индекс уже чем кластерный, занимает меньше страниц данных, если в нем есть все необходимые запросу данные, то просканировать его будет дешевле и быстрее чем сканировать кластерный.
Key lookup - суть clustered index seek, операция тем дороже, чем больше раз ее потребуется выполнить.
Шамиль Фаридович
Кто быстрее: Clustered Index Scan или Table Scan?

Clustered Index Scan - тоже умеет сканить по IAM.

Резюмируя выше сказанное, ответ на все ваши вопросы: "it depends...". Нет однозначно плохих-медленных операций, и хороших-быстрых, все зависит от конкретного случая, именно по этому оптимизатор в скивеле cost based. А решение что использовать принимается на основе стоимости оператора в каждом конкретном запросе, в каждом конкретном случае.
7 июн 12, 11:44    [12680595]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить