powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / BITMAP vs NORMAL
12 сообщений из 12, страница 1 из 1
BITMAP vs NORMAL
    #32177413
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые господа!

Объясните, пожалуйста, почему Oracle 8.1.5 при выполнении
SELECT * FROM SOME_TABLE WHERE FIELD1=:some_value
использует BITMAP_INDEX_BY_FIELD1 только с применением
-- +INDEX (SOME_TABLE BITMAP_INDEX_BY_FIELD1),
а NORMAL_INDEX_BY_FIELD1 "хватает" без всяких хинтов?

В SOME_TABLE 30 столбцов и 50000 записей, Distinct keys для FIELD1 = 23.

Спасибо!
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177422
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя оптимизатор в каком режиме работает ?
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177430
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
optimizer_mode=CHOOSE
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177435
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
optimizer_index_cost_adj=100
optimizer_max_permutations=80000
optimizer_search_limit=5
optimizer_features_enable=8.1.5
optimizer_index_caching=0
optimizer_percent_parallel=0
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177438
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
статистика по используемым обьектам есть?
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177475
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В смысле выполнялось ли ANALIZE TABLE ...? Выполнялось и не влияло.
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177503
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если статистика есть значит применялся стоимостной оптимизатор.
Видимо план выполнения для B-tree лучше, поэтому он использует его.

Какова стоимость обоих планов?
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177546
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cost:
TABLE ACCESS FULL=110 (BITMAP индекс, без хинта)
BITMAP CONVERSION TO ROWIDS=175,136242069211 (BITMAP, с хинтом) Ясно, что при использовании NORMAL индекса Cost<110 (даже проверять не буду)

Неясно: неужели при Distinct keys=23 и RowNum=50000 применение NORMAL индекса более эффективно? Почему он "задирает" стоимость BITMAP CONVERSION TO ROWIDS?
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177557
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть получается, что FULL SCAN даже лучше чем использование BITMAP.
А реально по времени выполнения запросов - распределение такое-же?
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177722
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какой процент от общего к-ва записей составляют записи с
Код: plaintext
FIELD1=:some_value

?
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177784
EthernalWonderer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>softbuilder@inbox.ru: на этой таблице время выполения близкое. А вот попробовал другую таблицу в той же схеме - 7 полей, 222000 записей, индексированное поле Dictinct keys=14:

без хинта BITMAP тоже не использует, первая строка выскакивает через 1 сек , Cost=233, 15000 строк, 652к памяти. Результаты Auto Trace: Physical reads=869 , Consistent gets=1862, весь набор прокачивается за 8 сек.

с хинтом время появления 1 строки 0,04сек , Cost 431, 15000 строк, 652к памяти. Physical reads=0 , consistent gets= 797, весь набор прокачивается за те же 8 сек. (Выяснилось, что кроме явного указания индекса подходит также /*+FIRST_ROWS */).

Короче, ни хрена я не понял этого оптимизатора - с одной стороны он по умолчанию, видимо, ориентируется на вывод всей выборки, с другой стороны даже для всей выборки Physical reads=869, Consistent gets=1862 (против 0/797 с индексом) даже при одинаковом времени выполнения говорят о явной необходимости использования индекса.

Почему он его не использует - загадка.


>MaxU как раз где - то 1/23 (распределение приблизительно равномерное)
...
Рейтинг: 0 / 0
BITMAP vs NORMAL
    #32177803
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как раз на "Physical reads" обращать внимание не стоит, а вот на что стоит так это на "consistent gets", и разница у тебя в 2.3 раза, а это существенно !!!

как ты анализируешь таблицы?

лучше приведи код для анализа

может это bug/feature 8.1.5 ? (я свой путь с ораклом начал с 8.1.6, поэтому здесь я пас)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / BITMAP vs NORMAL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]