| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Cost of Access Plan using Bitmap Indexes
Jonathan,
Here I am... back...and still fighting
with the plans for bitmap indexes.
First of all let me tell you that I read all your articles and I really liked them.
Know I have also read a lot of documentation (in my free time) and other related threads ... please forgive me if I am missing something quite obvious, but I am not yet used to Oracle.
Ok now some more detail on my env:
Win2000 4 processor (more or less 3 GB RAM)
Oracle 8.1.7.4.1 (not sure about the last .1)
db_block_size 16384
This is on of my many query that cannot access bitmap indexes: SELECT/*+ INDEX(t1 TABLE1_IDX_BIT_05) */ -t1."col1" "c1",
NVL (t1."col2", 0) * 1 "c2",
NVL (t1."col3", 0) * 1 "c3",
...
t1."last_col" "c53"
WHERE t2."col_t2_join" = t1."col_t1_join"
AND t1."col_t1_where_is_null" IS NULL
AND t1."col_t1_in_a_b" IN ('XYZ', 'WQR')
AND t1."col_t1_equal_to" = TO_NUMBER (TO_CHAR (SYSDATE, 'YYYY'))
AND ( t1."col_t1_part_of_patition_key_used_in_equal_to_three_OR" =
TO_NUMBER (TO_CHAR (SYSDATE, 'MM'))
Table1 has more or less 80,000,000 rows and it is partitioned by
col_t1_part_of_patition_key_equal,col_t1_part_of_patition_key_used_in_equal_to_three_OR
in 221 partitions... unfortunately not balanced
on col:
col_t1_join ,col_t1_where_is_null,col_t1_in_a_b,col_t1_equal_to
there is built an one col bitmap index.
here you can also find my 10053 trace, I post only the first part
because already from this part you can find that the indexes cost
is too high...
<snip>
OPTIMIZER_FEATURES_ENABLE = 8.1.7 OPTIMIZER_MODE/GOAL = Choose OPTIMIZER_PERCENT_PARALLEL = 0 HASH_AREA_SIZE = 2097152 HASH_JOIN_ENABLED = TRUE
OPTIMIZER_MAX_PERMUTATIONS = 80000 OPTIMIZER_INDEX_CACHING = 0 OPTIMIZER_INDEX_COST_ADJ = 43
I know that DB_FILE_MULTIBLOCK_READ_COUNT = 64 is too high and I already asked to change it(even if I am not the DBA here and not having access to some informations I cannot really see what should be the best... I would like a value of 16
<snip>
INDEX#: 287075 TABLE: TABLE2
CST: 144 IXSEL: 1.0000e+000 TBSEL: 1.0000e+000
Access path: index (no sta/stp keys)
INDEX#: 287076 TABLE: TABLE2
CST: 20 IXSEL: 1.0000e+000 TBSEL: 1.0000e+000
Access path: index (no sta/stp keys)
INDEX#: 3299 TABLE: TABLE2
CST: 385 IXSEL: 1.0000e+000 TBSEL: 1.0000e+000
Access path: index (no sta/stp keys)
INDEX#: 287076 TABLE: TABLE2
CST: 20 IXSEL: 1.0000e+000 TBSEL: 1.0000e+000
******** Bitmap access path rejected ********
Cost: 11401 Selectivity: 1
Column: ASS_MM_FI_ Col#: 9 Table: TABLE1 Alias: T1
NDV: 11 NULLS: 75624220 DENS: 9.0909e-002 LO: 411 HI:
755129
Column: SOURCE_REF Col#: 10 Table: TABLE1 Alias: T1
NDV: 5 NULLS: 0 DENS: 2.0000e-001
Column: col_t1_equal_to Col#: 15 Table: TABLE1 Alias: T1
NDV: 4 NULLS: 0 DENS: 2.5000e-001 LO: 1997 HI:
2003
Column: col_t1_part_of_patition_key_used_in_equal_to_three_OR Col#:
14 Table: TABLE1 Alias: T1
NDV: 12 NULLS: 0 DENS: 8.3333e-002 LO: 1 HI: 12
Column: OPERATING_ Col#: 13 Table: TABLE1 Alias: T1
NDV: 18 NULLS: 0 DENS: 5.5556e-002
TABLE: TABLE1 ORIG CDN: 81362697 CMPTD CDN: 86872
Access path: tsc Resc: 8100 Resp: 8100
Access path: index (equal)
INDEX#: 299284 TABLE: TABLE1
CST: 507 IXSEL: 2.5000e-001 TBSEL: 2.5000e-001
Access path: index (equal)
INDEX#: 299044 TABLE: TABLE1
CST: 408 IXSEL: 2.0000e-001 TBSEL: 2.0000e-001
Access path: index (equal)
INDEX#: 299044 TABLE: TABLE1
CST: 408 IXSEL: 2.0000e-001 TBSEL: 2.0000e-001
******** Bitmap access path accepted ********
Cost: 35359 Selectivity: 0
etc. etc..
from another post of you that I found I would expected a value of 18000 more or less... but twice that???
any way if anyone can give me an idea I would really much appreciate!!!
Thanks again
Fabrizio
-- Posted via Mailgate.ORG Server - http://www.Mailgate.ORGReceived on Fri Sep 26 2003 - 10:18:09 CDT
![]() |
![]() |