Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Index Usage ?!
Guys,
SQL> SELECT NAME,AGE,MEMNO,BLOODTYPE,HIGHT,LOOKSLIKE,CONTENT,PICID FROM PROFILE
WHERE PREF = :PREF AND SEX = :OP_SEX AND FLAG = :FLAG AND ENTPC = :ENTPC AND NAME IS NOT NULL AND FACCESS > SYSDATE - 14 ORDER BY ENTDAY DESC;
NO ROWS SELECTED ELAPSED: 00:00:00.07 EXECUTION PLAN
0 SELECT STATEMENT OPTIMIZER=CHOOSE (COST=7 CARD=187 BYTES=13838) 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'PROFILE' (COST=7 CARD=187 BYTES=13838) 2 1 INDEX (RANGE SCAN DESCENDING) OF 'IDX_PROFILE_SHINKI' (NON-UNIQUE) (COST=2 CARD=3759) STATISTICS
0 RECURSIVE CALLS 0 DB BLOCK GETS 0 CONSISTENT GETS 0 PHYSICAL READS 0 REDO SIZE 599 BYTES SENT VIA SQL*NET TO CLIENT 372 BYTES RECEIVED VIA SQL*NET FROM CLIENT 1 SQL*NET ROUNDTRIPS TO/FROM CLIENT 0 SORTS (MEMORY) 0 SORTS (DISK) 0 ROWS PROCESSED
after analyzing the index "idx_profile_shinki" , the exection plan is as below and the elapsed time is 31 secs.but before analyzing the elapsed time was 0.07 secs ( as above ).
ELAPSED: 00:00:31.04 EXECUTION PLAN
0 SELECT STATEMENT OPTIMIZER=CHOOSE (COST=1680 CARD=187 BYTES=13838) 1 0 SORT (ORDER BY) (COST=1680 CARD=187 BYTES=13838) 2 1 TABLE ACCESS (FULL) OF 'PROFILE' (COST=1676 CARD=187 BYTES=13838) STATISTICS
0 RECURSIVE CALLS 0 DB BLOCK GETS 17448 CONSISTENT GETS 5876 PHYSICAL READS 0 REDO SIZE 599 BYTES SENT VIA SQL*NET TO CLIENT 372 BYTES RECEIVED VIA SQL*NET FROM CLIENT 1 SQL*NET ROUNDTRIPS TO/FROM CLIENT 1 SORTS (MEMORY) 0 SORTS (DISK) 0 ROWS PROCESSED
the env. is 9.2.0.3/win2k-sp3.
it is built on "profile" table .
the index has the columns "entpc,sex,flag,pref,entday" in it.
the order of the columns in the index is also the same as i have mentioned.
1.so ,does it mean that "idx_profile_shinki" is a bad index. 2.if it is bad , why does cbo select this index ? 3.if it is good , why does elapsed time increase after analyzing this index ? 4.the leading column (entpc) of the index is not there in the beginning of "where" clause.then how is the index used ? it was not said so in a perf tuning book by "richard j. niemiec" Received on Thu Jul 24 2003 - 03:58:15 CDT
![]() |
![]() |