| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Mailing Lists -> Oracle-L -> Re[2]: why the index is not used ?
--IMA.Boundary.4953586590
Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Content-Description: cc:Mail note part
Steve:
But if you compare the response time with the RULE hint & CBO, there are a lots
differences.
see following query, it's almost 15 times fast by using RULE hint.
RAMSPRD>
1 SELECT T.BUSINESS_UNIT_ID, T.TRANSFER_ID, T.TRANSFER_OCCURENCE_TYPE,
2 T.TRANSFER_TYPE, T.FROM_SITE_ID, T.TO_SITE_ID, TD.TRANSFER_DETAIL_ID,
3 TD.LINE_NO, TD.ITEM_QTY
4 FROM TRANSFERS T, TRANSFER_DETAILS TD
5 WHERE T.BUSINESS_UNIT_ID=TD.BUSINESS_UNIT_ID 6 AND T.TRANSFER_ID=TD.TRANSFER_ID 7* AND T.TRANSFER_OCCURENCE_TYPE=TD.TRANSFER_OCCURENCE_TYPERAMSPRD>/
LINE_NO ITEM_QTY
---------------- ----------- - --------------- ----- ----- ------------------
---------- ----------
10 1 S REQUEST 10531 10198 1
1 3
10 1 S REQUEST 10531 10198 2
2 3
10 1 S REQUEST 10531 10198 3
3 3
10 1 S REQUEST 10531 10198 4
4 2
10 1 S REQUEST 10531 10198 5
5 1
10 1 S REQUEST 10531 10198 6
6 3
10 1 S REQUEST 10531 10198 7
7 1
10 1 S REQUEST 10531 10198 8
8 1
--IMA.Boundary.4953586590
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Description: cc:Mail note part
10 1 S REQUEST 10531 10198 9
9 3
10 1 S REQUEST 10531 10198 10
10 2
10 1 S REQUEST 10531 10198 11
11 1
10 1 S REQUEST 10531 10198 12
12 1
10 1 S REQUEST 10531 10198 13
13 1
10 1 S REQUEST 10531 10198 14
14 1
10 1 S REQUEST 10531 10198 15
15 1
10 1 S REQUEST 10531 10198 16
16 1
10 1 S REQUEST 10531 10198 17
17 2
10 1 S REQUEST 10531 10198 18
18 3
--IMA.Boundary.4953586590
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Description: cc:Mail note part
10 1 S REQUEST 10531 10198 19
19 1
10 1 S REQUEST 10531 10198 20
20 2
10 1 S REQUEST 10531 10198 21
21 1
10 1 S REQUEST 10531 10198 22
22 2
22 rows selected.
real: 61570
RAMSPRD>
1 SELECT /*+ RULE */ T.BUSINESS_UNIT_ID, T.TRANSFER_ID,
T.TRANSFER_OCCURENCE_TYPE,
2 T.TRANSFER_TYPE, T.FROM_SITE_ID, T.TO_SITE_ID, TD.TRANSFER_DETAIL_ID,
3 TD.LINE_NO, TD.ITEM_QTY
4 FROM TRANSFERS T, TRANSFER_DETAILS TD
5 WHERE T.BUSINESS_UNIT_ID=TD.BUSINESS_UNIT_ID
6 AND T.TRANSFER_ID=TD.TRANSFER_ID
7* AND T.TRANSFER_OCCURENCE_TYPE=TD.TRANSFER_OCCURENCE_TYPE
BUSINESS_UNIT_ID TRANSFER_ID T TRANSFER_TYPE FROM_ TO_SI TRANSFER_DETAIL_ID
LINE_NO ITEM_QTY
---------------- ----------- - --------------- ----- ----- ------------------
---------- ----------
10 1 S REQUEST 10531 10198 1
1 3
10 1 S REQUEST 10531 10198 2
2 3
10 1 S REQUEST 10531 10198 3
3 3
--IMA.Boundary.4953586590
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Description: cc:Mail note part
10 1 S REQUEST 10531 10198 4
4 2
10 1 S REQUEST 10531 10198 5
5 1
10 1 S REQUEST 10531 10198 6
6 3
10 1 S REQUEST 10531 10198 7
7 1
10 1 S REQUEST 10531 10198 8
8 1
10 1 S REQUEST 10531 10198 9
9 3
10 1 S REQUEST 10531 10198 10
10 2
10 1 S REQUEST 10531 10198 11
11 1
10 1 S REQUEST 10531 10198 12
12 1
10 1 S REQUEST 10531 10198 13
13 1
--IMA.Boundary.4953586590
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Description: cc:Mail note part
10 1 S REQUEST 10531 10198 14
14 1
10 1 S REQUEST 10531 10198 15
15 1
10 1 S REQUEST 10531 10198 16
16 1
10 1 S REQUEST 10531 10198 17
17 2
10 1 S REQUEST 10531 10198 18
18 3
10 1 S REQUEST 10531 10198 19
19 1
10 1 S REQUEST 10531 10198 20
20 2
10 1 S REQUEST 10531 10198 21
21 1
10 1 S REQUEST 10531 10198 22
22 2
22 rows selected.
real: 4070
____________________Reply Separator____________________Subject: Re: why the index is not used ? Author: ORACLE-L_at_fatcity.com
You are on the right track John. Basically there is no criteria that limits the
number of rows
returned. Your query will return every row in the two tables. It is actually
faster to do a full
tablescan than an index lookup if you are returning all the rows, so Oracle is
doing the right
thing here.
HTH,
Steve Boyd
> >FROM TRANSFERS T, TRANSFER_DETAILS TD
> >WHERE T.BUSINESS_UNIT_ID=TD.BUSINESS_UNIT_ID
> >AND T.TRANSFER_ID=TD.TRANSFER_ID
Received on Thu Apr 27 2000 - 11:35:03 CDT
![]() |
![]() |