Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> index not being used
Hi
Oracle 8.1.7.0.0 on HP-UX 11.0
We have following query .
/************
SELECT
A.CANNO "INVOICE NO",
A.CANDATE "INVOICE DATE",
--B.NAME "CUSTOMER NAME",
A.CANAMT "REVENUE AMOUNT", C.RCPTDOCNO "RECEIPT NO.", D.RECEIPTAMOUNT "RECEIPT AMOUNT", C.RCPTDATE "RECEIPT DATE" FROM ICWOIMP A,
Execution Plan :
SELECT STATEMENT Optimizer=CHOOSE (Cost=1178 Card=1 Bytes=12
1)
0 NESTED LOOPS (Cost=1178 Card=1 Bytes=121)
1 NESTED LOOPS (Cost=1175 Card=1 Bytes=109) 2 HASH JOIN (Cost=1174 Card=1 Bytes=81) 3 TABLE ACCESS (FULL) OF 'AFAS_RCPT_DTLS' (Cost=70 Car d=11603 Bytes=440914) 3 TABLE ACCESS (FULL) OF 'ICWOIMP' (Cost=830 Card=3733 9 Bytes=1605577) 2 TABLE ACCESS (BY INDEX ROWID) OF 'AFAS_RCPT_HDR' (Cost =1 Card=8343 Bytes=233604) 6 INDEX (UNIQUE SCAN) OF 'PK_AFAS_RCPT_HDR' (UNIQUE) 1 TABLE ACCESS (BY INDEX ROWID) OF 'ICADDDRESSDTLS' (Cost= 3 Card=12018 Bytes=144216) 8 INDEX (RANGE SCAN) OF 'INDX_ICADDRESSDTLS_WOKEY' (NON- UNIQUE) (Cost=2 Card=12018)
This plan shows that ICWOIMP is accessed FULL .
Actually this table
has a Primary Key on WOKEY & this is used in JOIN
condition . WHy is
it not using that index
I tried to force this index
SELECT /*+ INDEX (ICWOIMP PK_ICWOIMP) */
A.CANNO "INVOICE NO",
A.CANDATE "INVOICE DATE",
--B.NAME "CUSTOMER NAME",
A.CANAMT "REVENUE AMOUNT", C.RCPTDOCNO "RECEIPT NO.", D.RECEIPTAMOUNT "RECEIPT AMOUNT", C.RCPTDATE "RECEIPT DATE" FROM ICWOIMP A,
P.S. Statistics are Up-To-Date for all tables.
can anybody tell me why my hinet is being ignored
![]() |
![]() |