Лучшее объяснение приходит от Тома Лейна , который является автором алгоритма, если я не ошибаюсь. Смотрите также статья в Википедии .
Короче говоря, это немного похоже на последовательное сканирование. Разница заключается в том, что вместо просмотра каждой страницы на диске растровые индексы сканируют AND и OR, применяя соответствующие индексы, и посещают только те страницы диска, которые ему необходимы.
Это отличается от сканирования индекса, когда индекс посещается строка за строкой по порядку - это означает, что страница диска может посещаться несколько раз.
Re: вопрос в вашем комментарии ... Да, именно так.
Сканирование индекса будет проходить по строкам одна за другой, открывая страницы диска снова и снова, столько раз, сколько необходимо (некоторые, конечно, останутся в памяти, но вы поймете, что).
Сканирование индекса растрового изображения последовательно открывает короткий список страниц диска и захватывает каждую подходящую строку в каждой из них (отсюда и так называемый cond reheck cond, который вы видите в планах запросов).
Обратите внимание на то, как кластеризация / порядок строк влияет на связанные затраты с любым методом. Если строки расположены повсюду в случайном порядке, индекс растрового изображения будет дешевле. (И, на самом деле, если они действительно все повсеместно, последующее сканирование будет самым дешевым, поскольку сканирование растровых индексов не обходится без некоторых накладных расходов.)