Najlepsze wyjaśnienie pochodzi od Toma Lane'a, który jest autorem algorytmu, chyba że się mylę. Zobacz także artykuł w Wikipedii.
Krótko mówiąc, to trochę jak skanowanie sekwencyjne. Różnica polega na tym, że zamiast odwiedzać każdą stronę dysku, indeks bitmapy skanuje razem odpowiednie indeksy AND i OR i odwiedza tylko te strony dysku, których potrzebuje.
Różni się to od skanowania indeksu, w którym indeks jest odwiedzany wiersz po wierszu w kolejności – co oznacza, że strona dysku może być odwiedzana wiele razy.
Re:pytanie w twoim komentarzu... Tak, dokładnie to.
Skanowanie indeksu przechodzi przez wiersze jeden po drugim, otwierając strony dysku raz za razem, tyle razy, ile to konieczne (niektóre oczywiście pozostaną w pamięci, ale rozumiesz).
Skanowanie indeksu bitmapy sekwencyjnie otworzy krótką listę stron dysku i pobierze każdy odpowiedni wiersz w każdej z nich (stąd tak zwany warunek ponownego sprawdzenia, który widzisz w planach zapytań).
Zwróć uwagę na to, jak grupowanie/kolejność wierszy wpływa na powiązane koszty w obu metodach. Jeśli wiersze są rozmieszczone w dowolnym miejscu w losowej kolejności, indeks bitmapowy będzie tańszy. (I tak naprawdę, jeśli naprawdę są wszystkie .) w innym miejscu, skanowanie sekwencyjne będzie najtańsze, ponieważ skanowanie indeksu bitmapy nie jest pozbawione pewnych narzutów.)