Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: [Q] SQL statement that Rule base run faster than cost base!!
You've posted this exact same query before -- and it's still the same. Have
you tried any of the previous suggestions?
There is no need for FACILITY_MASTER or FACILITY_TYPE to be in this query. Is is possible to remove them? I'd be interested in the plan for the following query, which is logically equivalent to yours:
select distinct FACILITY_ATTRIBUTE.facility_attribute_id,
FACILITY_ATTRIBUTE.title, FACILITY_ATTRIBUTE.internet_query_flag
from FACILITY, FACILITY_FEATURE, FACILITY_ATTRIBUTE
where FACILITY.facility_id = FACILITY_FEATURE.facility_id
and FACILITY_FEATURE.facility_attribute_id =
FACILITY_ATTRIBUTE.facility_attribute_id
and FACILITY.internet_query_flag <> 0
and FACILITY_ATTRIBUTE.internet_query_flag <> 0
order by FACILITY_ATTRIBUTE.title
Have you considered bitmap indices on the internet_query_flags?
Diana
-----Original Message-----
From: L [mailto:leed_at_chele.cais.net]
Sent: Tuesday, December 05, 2000 2:38 PM
To: Multiple recipients of list ORACLE-L
Subject: [Q] SQL statement that Rule base run faster than cost base!!
I have foloowing SQL statement, it run a lot faster on Rule mode (18 seconds) than cost mode (10 min) under ORACLE 7.3.4. Does anyone know why?
I list output from TKPROF :
select distinct FACILITY_ATTRIBUTE.facility_attribute_id,
FACILITY_ATTRIBUTE.title, FACILITY_ATTRIBUTE.internet_query_flag
from FACILITY, FACILITY_TYPE, FACILITY_MASTER, FACILITY_FEATURE,
FACILITY_ATTRIBUTE
where FACILITY.facility_master_id = FACILITY_MASTER.facility_master_id
and FACILITY.facility_type_id = FACILITY_TYPE.facility_type_id
and FACILITY.facility_id = FACILITY_FEATURE.facility_id
and FACILITY_FEATURE.facility_attribute_id =
FACILITY_ATTRIBUTE.facility_attribute_id
and FACILITY.internet_query_flag <> 0
and FACILITY_ATTRIBUTE.internet_query_flag <> 0
order by FACILITY_ATTRIBUTE.title
call count cpu elapsed disk query current
rows
------- ------ -------- ---------- ---------- ---------- ----------
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 11 (USER1)
Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT GOAL: CHOOSE
23081 SORT (UNIQUE)
23081 NESTED LOOPS
2256300 NESTED LOOPS 2256300 HASH JOIN 12535 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'FACILITY' 17280 MERGE JOIN (CARTESIAN) 180 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'FACILITY_ATTRIBUTE' 96 SORT (JOIN) 97 INDEX GOAL: ANALYZED (FULL SCAN) OF 'XPKFACILITY_TYPE' (UNIQUE) 2256300 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'XPKFACILITY_MASTER' (UNIQUE) 2256300 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'XPKFACILITY_FEATURE' (UNIQUE)
B. use "rule" base mode
select distinct FACILITY_ATTRIBUTE.facility_attribute_id,
FACILITY_ATTRIBUTE.title, FACILITY_ATTRIBUTE.internet_query_flag
from
FACILITY, FACILITY_TYPE, FACILITY_MASTER, FACILITY_FEATURE,
FACILITY_ATTRIBUTE where FACILITY.facility_master_id = FACILITY_MASTER.facility_master_id and FACILITY.facility_type_id = FACILITY_TYPE.facility_type_id and FACILITY.facility_id = FACILITY_FEATURE.facility_id and FACILITY_FEATURE.facility_attribute_id = FACILITY_ATTRIBUTE.facility_attribute_id andFACILITY.internet_query_flag <> 0 and FACILITY_ATTRIBUTE.internet_query_flag <> 0 order by
call count cpu elapsed disk query current
rows
------- ------ -------- ---------- ---------- ---------- ----------
Misses in library cache during parse: 1
Optimizer goal: RULE
Parsing user id: 11 (USER1)
Rows Execution Plan
------- ---------------------------------------------------
0 SELECT STATEMENT GOAL: RULE
23081 SORT (UNIQUE)
23081 NESTED LOOPS
23081 NESTED LOOPS 23081 NESTED LOOPS 23081 NESTED LOOPS 180 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'FACILITY_ATTRIBUTE' 23081 TABLE ACCESS GOAL: ANALYZED (BY ROWID) OF 'FACILITY_FEATURE' 23261 INDEX GOAL: ANALYZED (RANGE SCAN) OF 'XIE1FACILITY_FEATURE' (NON-UNIQUE) 23081 TABLE ACCESS GOAL: ANALYZED (BY ROWID) OF 'FACILITY' 23081 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'XPKFACILITY' (UNIQUE) 23081 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'XPKFACILITY_MASTER' (UNIQUE) 23081 INDEX GOAL: ANALYZED (UNIQUE SCAN) OF 'XPKFACILITY_TYPE' (UNIQUE)
-- Please see the official ORACLE-L FAQ: http://www.orafaq.com -- Author: L INET: leed_at_chele.cais.net Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051 San Diego, California -- Public Internet access / Mailing ListsReceived on Wed Dec 06 2000 - 14:44:35 CST
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L
![]() |
![]() |