|
|
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа! Объясните, пожалуйста, почему 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. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 14:27:06 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
У тебя оптимизатор в каком режиме работает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 14:32:09 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
optimizer_mode=CHOOSE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 14:38:21 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 14:41:58 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
статистика по используемым обьектам есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 14:43:12 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
В смысле выполнялось ли ANALIZE TABLE ...? Выполнялось и не влияло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 15:06:25 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
Если статистика есть значит применялся стоимостной оптимизатор. Видимо план выполнения для B-tree лучше, поэтому он использует его. Какова стоимость обоих планов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 15:16:48 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
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? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 15:39:52 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
То есть получается, что FULL SCAN даже лучше чем использование BITMAP. А реально по времени выполнения запросов - распределение такое-же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 15:46:06 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
а какой процент от общего к-ва записей составляют записи с Код: plaintext ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 17:23:48 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
>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 (распределение приблизительно равномерное) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 18:01:54 |
|
||
|
BITMAP vs NORMAL
|
|||
|---|---|---|---|
|
#18+
как раз на "Physical reads" обращать внимание не стоит, а вот на что стоит так это на "consistent gets", и разница у тебя в 2.3 раза, а это существенно !!! как ты анализируешь таблицы? лучше приведи код для анализа может это bug/feature 8.1.5 ? (я свой путь с ораклом начал с 8.1.6, поэтому здесь я пас) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 18:09:04 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32177430&tid=1990148]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
461ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 780ms |

| 0 / 0 |
