13
Сравнение эффективности
время
селективность
0 1s
1
s
2
I
n
d
e
x
S
c
a
n
B
i
t
m
a
p
I
n
d
e
x
S
c
a
n
Seq Scan
пропорционально
кол-ву строк
пропорционально
кол-ву страниц
Индексное сканирование лучше всего работает при очень высокой
селективности, когда по индексу выбирается одно или несколько
значений.
При средней селективности лучше всего показывает себя сканирование
по битовой карте. Оно работает лучше индексного сканирования,
поскольку обходится без повторных чтений одних и тех же страниц.
Однако при сканировании по битовой карте возникают накладные
расходы на построение карты, поэтому при высокой селективности оно
проигрывает.
При низкой селективности лучше всего работает последовательное
сканирование: если надо выбрать все или почти все табличные строки,
обращение к индексным страницам только увеличивает накладные
расходы. Этот эффект усиливается в случае вращающихся дисков, где
стоимость произвольного чтения существенно выше стоимости чтения
последовательно расположенных страниц.
Значение селективности, при котором становится выгодно
переключиться на другой метод доступа, сильно зависит от конкретной
таблицы и конкретного индекса. Планировщик учитывает множество
параметров, чтобы выбрать наиболее подходящий способ.
Еще одно замечание: при индексном доступе результат возвращается
отсортированным, что в ряде случаев увеличивает привлекательность
такого доступа даже при низкой селективности.