dbTalk Databases Forums  

Another interesting query

comp.database.oracle comp.database.oracle


Discuss Another interesting query in the comp.database.oracle forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
James A. Williams
 
Posts: n/a

Default Another interesting query - 01-29-2004 , 02:02 PM






I am trying to help a user tune a very intersting query presented by a
user.
Currently runs in about 7 seconds.

SELECT * FROM ((SELECT DISTINCT APPOINTMENT_DTE AS "ApptDate",
AW.START_TIME as "StartTime", AW.END_TIME as "EndTime", A.LEVEL_NBR as
"ApptWindow", A.SEQ_NBR as "ApptSequence" FROM UPI.AR_AVAILABILITY A,
APPOINTMENT_WINDOW AW WHERE APPOINTMENT_DTE BETWEEN '20040129' AND
'20040428' AND A.LEVEL_NBR = AW.LEVEL_NBR AND A.SEQ_NBR = AW.SEQ_NBR
AND AW.LEVEL_NBR IN ('03','06') AND A.MIN_AVAIL >=
SOS_PKG.GETORDERDURATION('3FAA0', 'COFF' ) AND A.GEO_AREA_CD = '3FAA0'
AND A.JOB_GROUP = 'FTECH' UNION (SELECT DISTINCT APPOINTMENT_DTE,
AW.START_TIME, AW.END_TIME, A.LEVEL_NBR, A.SEQ_NBR FROM
UPI.AR_AVAILABILITY A, APPOINTMENT_WINDOW AW WHERE APPOINTMENT_DTE
BETWEEN '20040129' AND '20040428' AND A.LEVEL_NBR = AW.LEVEL_NBR AND
A.SEQ_NBR = AW.SEQ_NBR AND AW.LEVEL_NBR IN ( '03','06' ) AND
A.MIN_AVAIL >= SOS_PKG.GETORDERDURATION('3FAA0', 'COFF') AND
A.GEO_AREA_CD = '3F000' AND A.JOB_GROUP = 'FTECH' MINUS SELECT
DISTINCT APPOINTMENT_DTE, AW.START_TIME, AW.END_TIME, A.LEVEL_NBR,
A.SEQ_NBR FROM UPI.AR_AVAILABILITY A, APPOINTMENT_WINDOW AW WHERE
APPOINTMENT_DTE BETWEEN '20040129' AND '20040428' AND A.LEVEL_NBR =
AW.LEVEL_NBR AND A.SEQ_NBR = AW.SEQ_NBR AND A.GEO_AREA_CD = '3FAA0'
AND AW.LEVEL_NBR IN ('03','06'))) MINUS SELECT DISTINCT
APPOINTMENT_DTE, AW.START_TIME, AW.END_TIME, A.LEVEL_NBR, A.SEQ_NBR
FROM UPI.AR_AVAILABILITY A, APPOINTMENT_WINDOW AW WHERE
APPOINTMENT_DTE = TO_CHAR(SYSDATE,'YYYYMMDD') AND A.LEVEL_NBR =
AW.LEVEL_NBR AND A.SEQ_NBR = AW.SEQ_NBR AND AW.LEVEL_NBR IN
('03','06') AND (CAL_ETIME_MIN -
(TO_NUMBER(TO_CHAR(SYSDATE,'HH24'))*60 +
TO_NUMBER(TO_CHAR(SYSDATE,'MI'))) < '120') AND GEO_AREA_CD = '3F000'
)AGG WHERE ROWNUM <= '10' ORDER BY 1 ASC,2 ASC,3 ASC


ps$oracle@ADD1> @explainer2

PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------
Quote:
Id | Operation | Name
Rows | Bytes | Cost |
----------------------------------------------------------------------------------------------------
0 | SELECT STATEMENT |
| | |
1 | SORT ORDER BY |
| | |
* 2 | COUNT STOPKEY |
| | |
3 | VIEW |
| | |
4 | MINUS |
| | |
5 | SORT UNIQUE |
| | |
6 | UNION-ALL |
| | |
7 | CONCATENATION |
| | |
* 8 | TABLE ACCESS BY INDEX ROWID | AR_AVAILABILITY
| | |
9 | NESTED LOOPS |
| | |
10 | TABLE ACCESS BY INDEX ROWID | APPOINTMENT_WINDOW
| | |
* 11 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 12 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
* 13 | TABLE ACCESS BY INDEX ROWID | AR_AVAILABILITY
| | |
14 | NESTED LOOPS |
| | |
15 | TABLE ACCESS BY INDEX ROWID | APPOINTMENT_WINDOW
| | |
* 16 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 17 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
18 | MINUS |
| | |
19 | SORT UNIQUE |
| | |
20 | CONCATENATION |
| | |
* 21 | TABLE ACCESS BY INDEX ROWID | AR_AVAILABILITY
| | |
22 | NESTED LOOPS |
| | |
23 | TABLE ACCESS BY INDEX ROWID| APPOINTMENT_WINDOW
| | |
* 24 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 25 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
* 26 | TABLE ACCESS BY INDEX ROWID | AR_AVAILABILITY
| | |
27 | NESTED LOOPS |
| | |
28 | TABLE ACCESS BY INDEX ROWID| APPOINTMENT_WINDOW
| | |
* 29 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 30 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
31 | SORT UNIQUE |
| | |
32 | CONCATENATION |
| | |
33 | NESTED LOOPS |
| | |
34 | TABLE ACCESS BY INDEX ROWID | APPOINTMENT_WINDOW
| | |
* 35 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 36 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
37 | NESTED LOOPS |
| | |
38 | TABLE ACCESS BY INDEX ROWID | APPOINTMENT_WINDOW
| | |
* 39 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 40 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
41 | SORT UNIQUE |
| | |
42 | CONCATENATION |
| | |
43 | NESTED LOOPS |
| | |
* 44 | TABLE ACCESS BY INDEX ROWID | APPOINTMENT_WINDOW
| | |
* 45 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 46 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
47 | NESTED LOOPS |
| | |
* 48 | TABLE ACCESS BY INDEX ROWID | APPOINTMENT_WINDOW
| | |
* 49 | INDEX RANGE SCAN |
APPOINTMENT_WINDOW_IND02 | | | |
* 50 | INDEX RANGE SCAN | AR_AVAILABILITY_PK
| | |
----------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - filter(ROWNUM<=10)
8 - filter("A"."MIN_AVAIL">="AGLCUST"."SOS_PKG"."GETOR DERDURATION"('3FAA0','COFF'))
11 - access("AW"."LEVEL_NBR"=6)
12 - access("A"."APPOINTMENT_DTE">='20040129' AND
"A"."JOB_GROUP"='FTECH' AND
"A"."GEO_AREA_CD"='3FAA0' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND "A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."APPOINTMENT_DTE"<='20040428')
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3FAA0' AND "A"."JOB_GROUP"='FTECH')
13 - filter("A"."MIN_AVAIL">="AGLCUST"."SOS_PKG"."GETOR DERDURATION"('3FAA0','COFF'))
16 - access("AW"."LEVEL_NBR"=3)
17 - access("A"."APPOINTMENT_DTE">='20040129' AND
"A"."JOB_GROUP"='FTECH' AND
"A"."GEO_AREA_CD"='3FAA0' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND "A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."APPOINTMENT_DTE"<='20040428')
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3FAA0' AND "A"."JOB_GROUP"='FTECH')
21 - filter("A"."MIN_AVAIL">="AGLCUST"."SOS_PKG"."GETOR DERDURATION"('3FAA0','COFF'))
24 - access("AW"."LEVEL_NBR"=6)
25 - access("A"."APPOINTMENT_DTE">='20040129' AND
"A"."JOB_GROUP"='FTECH' AND
"A"."GEO_AREA_CD"='3F000' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND "A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."APPOINTMENT_DTE"<='20040428')
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3F000' AND "A"."JOB_GROUP"='FTECH')
26 - filter("A"."MIN_AVAIL">="AGLCUST"."SOS_PKG"."GETOR DERDURATION"('3FAA0','COFF'))
29 - access("AW"."LEVEL_NBR"=3)
30 - access("A"."APPOINTMENT_DTE">='20040129' AND
"A"."JOB_GROUP"='FTECH' AND
"A"."GEO_AREA_CD"='3F000' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND "A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."APPOINTMENT_DTE"<='20040428')
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3F000' AND "A"."JOB_GROUP"='FTECH')
35 - access("AW"."LEVEL_NBR"=6)
36 - access("A"."APPOINTMENT_DTE">='20040129' AND
"A"."GEO_AREA_CD"='3FAA0' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."APPOINTMENT_DTE"<='20040428')
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3FAA0')
39 - access("AW"."LEVEL_NBR"=3)
40 - access("A"."APPOINTMENT_DTE">='20040129' AND
"A"."GEO_AREA_CD"='3FAA0' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."APPOINTMENT_DTE"<='20040428')
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3FAA0')
44 - filter("AW"."CAL_ETIME_MIN"-(TO_NUMBER(TO_CHAR(SYSDATE@!,'HH24'))*60+TO_NUMBER (TO_CHAR(SYSDAT
E@!,'MI')))<120)
45 - access("AW"."LEVEL_NBR"=6)
46 - access("A"."APPOINTMENT_DTE"=TO_CHAR(SYSDATE@!,'YY YYMMDD') AND
"A"."GEO_AREA_CD"='3F000' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."SEQ_NBR"="AW"."SEQ_NBR")
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3F000')
48 - filter("AW"."CAL_ETIME_MIN"-(TO_NUMBER(TO_CHAR(SYSDATE@!,'HH24'))*60+TO_NUMBER (TO_CHAR(SYSDAT
E@!,'MI')))<120)
49 - access("AW"."LEVEL_NBR"=3)
50 - access("A"."APPOINTMENT_DTE"=TO_CHAR(SYSDATE@!,'YY YYMMDD') AND
"A"."GEO_AREA_CD"='3F000' AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."SEQ_NBR"="AW"."SEQ_NBR")
filter("A"."SEQ_NBR"="AW"."SEQ_NBR" AND
"A"."LEVEL_NBR"="AW"."LEVEL_NBR" AND
"A"."GEO_AREA_CD"='3F000')

Note: rule based optimization

117 rows selected.


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.