равенство для нескольких столбцов), и индекс на основе В*-дерева (для поиска конкретных значений ключа или диапазонов значений ключа). Можно создать в таблице дополнительный столбец и, используя триггеры, заполнять его теми же значениями, что и столбец, для которого хотелось бы создать два индекса. Однако в запросах необходимо указывать имя столбца, проиндексированного соответствующим образом.
Итак, мы представили bitmap-индекс в виде таблицы с одной строкой для каждого значения ключа. Во многих отношениях именно так он и выглядит, и именно так к bitmap-индексу применяется блокировка на уровне строки. Исключительная блокировка (exclusive lock) распространяется на всю битовую карту для данного ключа. Следовательно, высокая частота операций с элементами индекса, в которых задействуется одно и то же значение ключа, приведет к появлению конфликтов блокировок. Поскольку bitmap-индексы больше подходят для ключей с низкой избирательностью (и, следовательно, с более высоким количеством элементов битовой карты для каждого ключа), конфликты блокировок почти неизбежны, если bitmap-индексы используются с таблицами определенного вида. Это таблицы, в которых выполняются операции вставки и удаления, а также таблицы, индексированные значения столбцов в строках которых обновляются в многопользовательском режиме.
Bitmap-индексы — ценная вещь, но лучше ограничивать их применение столбцами, которые имеют относительно мало разных значений и находятся в таблицах, обрабатываемых в едином потоке (во избежание потенциальных конфликтов блокировок). Bitmap-индексы бесполезны при выполнении операций BETWEEN, но представляют собой мощный инструмент быстрого доступа к пересечениям значений ключа по нескольким столбцам. Такие индексы — практически единственная альтернатива полному сканированию таблицы в случаях, когда сочетание столбцов, указываемое в запросах, часто изменяется. Однако при использовании Parallel Query Option полное сканирование таблицы может быть решением более приемлемым. По нашим прогнозам, bitmap-индексы будут широко применяться в приложениях хранилищ данных для столбцов размерности в таблицах фактов, в частности потому, что эти таблицы редко обновляются.
Кооперативное индексирование
Кооперативное индексирование — это, скорее, название метода, упоминаемого в документации, а не инструмент OracleS. Он представляет собой совокупность технических приемов, которые можно применять, если сама OracleS не способна поддерживать конкретную выбранную вами стратегию индексации. Данная концепция допустима, и термин "кооперативная" здесь используется правильно. Он означает, что "если каждое индивидуальное приложение не выполняет задачу правильно, схема работать не будет". Это же мы имеем в виду, когда говорим о кооперативной блокировке — схеме,
4.  "Большие" особенности OraclcS	83