Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сканирование кластерного индекса  [new]
HOBBT
Guest
День добрый !
Вопрос в том, в каких случаях сканирование кластерного индекса не приведет к сканированию всей таблицы на которой он построен
Я так понимаю (может неверно) что сканирование может быть упорядочено (ORDERED=true) и в этом случае скан может прекратиться при достижении конца диапазона (то есть при упорядоченном скане может начитаться меньше записей, чем в таблице)
Спасибо
27 апр 16, 18:12    [19114215]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
Glory
Member

Откуда:
Сообщений: 104760
HOBBT
Вопрос в том, в каких случаях сканирование кластерного индекса не приведет к сканированию всей таблицы на которой он построен

Ни в каком.
Кластерный индекс это и есть таблица.
27 апр 16, 18:13    [19114222]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
HOBBT
Guest
То есть в любом случае он будет целиком просканирован (то есть ORDERED скан не может прекратиться)
27 апр 16, 18:16    [19114235]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
HOBBT,

(clustered) index scan - это всегда полное сканирование индекса.
Сканирование диапазона индекса или точечный поиск отображаются в плане одинаково - как (clustered) index seek.
27 апр 16, 18:31    [19114285]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
Glory
Member

Откуда:
Сообщений: 104760
HOBBT
То есть в любом случае он будет целиком просканирован (то есть ORDERED скан не может прекратиться)

Что значит в "любом" ?
Невозможно както отдельно сканировать таблицу при наличии кластерного индекса
27 апр 16, 19:02    [19114391]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
iljy
Member

Откуда:
Сообщений: 8711
HOBBT,

вы путаете вид операции и количество возвращаемых записей. Если я напишу для таблицы с кластерным индексом
select top(1) * from Table1

, то операция все равно будет Clustered Index Scan (ordered или unordered - зависит от того, допишу я в запрос ORDER BY или нет). Но вернет она мне только одну запись.
27 апр 16, 19:14    [19114425]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
invm
HOBBT,

(clustered) index scan - это всегда полное сканирование индекса.
Сканирование диапазона индекса или точечный поиск отображаются в плане одинаково - как (clustered) index seek.
Ну еще если TOP указан, то будет выглядеть как scan, но прочитан может быть не весь индекс.
27 апр 16, 19:20    [19114449]     Ответить | Цитировать Сообщить модератору
 Re: Сканирование кластерного индекса  [new]
HOBBT
Guest
Всем спасибо за ответы
27 апр 16, 19:55    [19114518]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить