В Oracle, двійковий індекс дерева у стовпці NOT NULL може використовуватися для відповіді на COUNT (*). У більшості випадків це буде швидше, ніж ПОЛІТИЧНИЙ СКАН, тому що індекси зазвичай менші, ніж їх основна таблиця.
Однак звичайний бінарний індекс дерева все ще буде величезним з 157 Mrows. Якщо ваша таблиця не оновлюється одночасно (тобто лише процес завантаження пакетної версії), ви можете замість цього використовувати індекс растрових зображень.
Найменший растровий індекс буде приблизно таким:
CREATE BITMAP INDEX ix ON your_table(NULL);
Нульові записи враховуються індексом растрових зображень. Отриманий індекс буде невеликим (20-30 8 кб блоків на мільйон рядків) порівняно з звичайним бінарним індексом дерева або базовою таблицею.
Отриманий план повинен відображати такі операції:
----------------------------------------------
| Id | Operation | Name |
----------------------------------------------
| 0 | SELECT STATEMENT | |
| 1 | SORT AGGREGATE | |
| 2 | BITMAP CONVERSION COUNT | |
| 3 | BITMAP INDEX FAST FULL SCAN| IX |
----------------------------------------------
Якщо ваша таблиця оновлюється одночасно, індекс растрових зображень з унікальним значенням буде суперечкою і не повинен використовуватися.