Информация об изменениях

Сообщение Re[16]: [SQL Server] Анализ всех запросов к таблице от 01.08.2015 11:09

Изменено 01.08.2015 11:17 Somescout

Здравствуйте, _ABC_, Вы писали:

_AB>В случае index seek как раз не будет последовательного чтения страниц. Там будет случайное чтение от root page до leaf page со всеми

_AB>необходимыми остановками. На эту операцию фрагментация фактически не влияет.
Разве? Index seek выполняется когда предикат индекса совпадает с предикатом запроса, т.е. index (a) и (where a between x and y) в этом случае находится первая страница диапазона и читается до последней. Хотя в более сложных случаях доступ будет более произвольным (index(a,b), where a>x and b<y), но в любом случае чтение идёт диапазонами строк: находим первую и последнюю строку соответствую условию и читаем всё между ними.

Кстати, index scan будет работать точно также, правда при этом обрабатываются и не соответствующие условию строки входящие в диапазон.
Re[16]: [SQL Server] Анализ всех запросов к таблице
Здравствуйте, _ABC_, Вы писали:

_AB>В случае index seek как раз не будет последовательного чтения страниц. Там будет случайное чтение от root page до leaf page со всеми

_AB>необходимыми остановками. На эту операцию фрагментация фактически не влияет.
Разве? Index seek выполняется когда предикат индекса совпадает с предикатом запроса, т.е. index (a) и (where a between x and y) в этом случае находится первая страница диапазона и читается до последней. Хотя в более сложных случаях доступ будет более произвольным (index(a,b), where a>x and b<y), но в любом случае чтение идёт диапазонами строк: находим первую и последнюю строку соответствую условию и читаем всё между ними.

Кстати, index scan будет работать точно также, правда при этом обрабатываются и не соответствующие условию строки входящие в диапазон.

И во всех случаях влияние фрагментации будет зависеть от длинны диапазона и размера одной строки.