You Asked
Hi
I have a query in my application:
SELECT NULL,
p.owner,
p.table_name,
pc.column_name,
NULL,
f.owner,
f.table_name,
fc.column_name,
fc.position,
NULL,
DECODE( f.delete_rule, 'CASCADE', 0, 'SET NULL', 2, 1 ),
f.constraint_name,
p.constraint_name,
DECODE( f.deferrable, 'DEFERRABLE', 5, 'NOT DEFERRABLE', 7, 'DEFERRED', 6 )
FROM all_cons_columns pc,
all_constraints p,
all_cons_columns fc,
all_constraints f
WHERE 1 = 1
AND f.table_name = 'my_table'
AND f.owner = 'my_schema'
AND f.constraint_type = 'R'
AND p.owner = f.r_owner
AND p.constraint_name = f.r_constraint_name
AND p.constraint_type = 'P'
AND pc.owner = p.owner
AND pc.constraint_name = p.constraint_name
AND pc.table_name = p.table_name
AND fc.owner = f.owner
AND fc.constraint_name = f.constraint_name
AND fc.table_name = f.table_name
AND fc.position = pc.position;
until now I ran Oracle 11SE and everythign was ok.
Recently I installed 12c (Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production), and now this query takes about 2 minutes to run. I tried several solutions found on the web to enhance database performance but nothing helped.
Any hint would be very helpful.
Thank you in advance.
and Connor said...
I managed to replicate this on my db. Most of the time was in fact spent *parsing* the query, not actually running it. So I generated an outline to lock in the plan (which you use to create a baseline if you are using bind variables - see
http://www.oracle.com/technetwork/database/bi-datawarehousing/twp-sql-plan-mgmt-12c-1963237.pdf ).
But since it looks like you are using literals for the owner/table, that is, every SQL is different, then a quick fix is to revert to having the outline hardcoded in the SQL.
It doesnt *look* nice but it works
SQL>
SQL> SELECT
2 /*+
3 BEGIN_OUTLINE_DATA
4 PARTIAL_JOIN(@"SEL$B1BD3C93" "OBJAUTH$"@"SEL$53")
5 USE_NL(@"SEL$B1BD3C93" "OBJAUTH$"@"SEL$53")
6 LEADING(@"SEL$B1BD3C93" "X$KZSRO"@"SEL$54" "OBJAUTH$"@"SEL$53")
7 INDEX(@"SEL$B1BD3C93" "OBJAUTH$"@"SEL$53" ("OBJAUTH$"."GRANTEE#" "OBJAUTH$"."OBJ#" "OBJAUTH$"."COL#"))
8 FULL(@"SEL$B1BD3C93" "X$KZSRO"@"SEL$54")
9 FULL(@"SEL$141D79C4" "X$KZSPR"@"SEL$57")
10 FULL(@"SEL$50" "UE"@"SEL$50")
11 FULL(@"SEL$51" "UE"@"SEL$51")
12 PARTIAL_JOIN(@"SEL$52" "O2"@"SEL$52")
13 USE_NL(@"SEL$52" "O2"@"SEL$52")
14 LEADING(@"SEL$52" "U2"@"SEL$52" "O2"@"SEL$52")
15 INDEX(@"SEL$52" "O2"@"SEL$52" ("OBJ$"."DATAOBJ#" "OBJ$"."TYPE#" "OBJ$"."OWNER#"))
16 INDEX_SS(@"SEL$52" "U2"@"SEL$52" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
17 PARTIAL_JOIN(@"SEL$5FA86079" "OBJAUTH$"@"SEL$35")
18 USE_NL(@"SEL$5FA86079" "OBJAUTH$"@"SEL$35")
19 LEADING(@"SEL$5FA86079" "X$KZSRO"@"SEL$36" "OBJAUTH$"@"SEL$35")
20 INDEX(@"SEL$5FA86079" "OBJAUTH$"@"SEL$35" ("OBJAUTH$"."GRANTEE#" "OBJAUTH$"."OBJ#" "OBJAUTH$"."COL#"))
21 FULL(@"SEL$5FA86079" "X$KZSRO"@"SEL$36")
22 FULL(@"SEL$04C44AC2" "X$KZSPR"@"SEL$39")
23 FULL(@"SEL$32" "UE"@"SEL$32")
24 FULL(@"SEL$33" "UE"@"SEL$33")
25 PARTIAL_JOIN(@"SEL$34" "O2"@"SEL$34")
26 USE_NL(@"SEL$34" "O2"@"SEL$34")
27 LEADING(@"SEL$34" "U2"@"SEL$34" "O2"@"SEL$34")
28 INDEX(@"SEL$34" "O2"@"SEL$34" ("OBJ$"."DATAOBJ#" "OBJ$"."TYPE#" "OBJ$"."OWNER#"))
29 INDEX_SS(@"SEL$34" "U2"@"SEL$34" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
30 PARTIAL_JOIN(@"SEL$454F554E" "OBJAUTH$"@"SEL$25")
31 USE_NL(@"SEL$454F554E" "OBJAUTH$"@"SEL$25")
32 LEADING(@"SEL$454F554E" "X$KZSRO"@"SEL$26" "OBJAUTH$"@"SEL$25")
33 INDEX(@"SEL$454F554E" "OBJAUTH$"@"SEL$25" ("OBJAUTH$"."GRANTEE#" "OBJAUTH$"."OBJ#" "OBJAUTH$"."COL#"))
34 FULL(@"SEL$454F554E" "X$KZSRO"@"SEL$26")
35 FULL(@"SEL$86413303" "X$KZSPR"@"SEL$29")
36 FULL(@"SEL$22" "UE"@"SEL$22")
37 FULL(@"SEL$23" "UE"@"SEL$23")
38 PARTIAL_JOIN(@"SEL$24" "O2"@"SEL$24")
39 USE_NL(@"SEL$24" "O2"@"SEL$24")
40 LEADING(@"SEL$24" "U2"@"SEL$24" "O2"@"SEL$24")
41 INDEX(@"SEL$24" "O2"@"SEL$24" ("OBJ$"."DATAOBJ#" "OBJ$"."TYPE#" "OBJ$"."OWNER#"))
42 INDEX_SS(@"SEL$24" "U2"@"SEL$24" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
43 PARTIAL_JOIN(@"SEL$6444526D" "OBJAUTH$"@"SEL$7")
44 USE_NL(@"SEL$6444526D" "OBJAUTH$"@"SEL$7")
45 LEADING(@"SEL$6444526D" "X$KZSRO"@"SEL$8" "OBJAUTH$"@"SEL$7")
46 INDEX(@"SEL$6444526D" "OBJAUTH$"@"SEL$7" ("OBJAUTH$"."GRANTEE#" "OBJAUTH$"."OBJ#" "OBJAUTH$"."COL#"))
47 FULL(@"SEL$6444526D" "X$KZSRO"@"SEL$8")
48 FULL(@"SEL$96467BBE" "X$KZSPR"@"SEL$11")
49 FULL(@"SEL$4" "UE"@"SEL$4")
50 FULL(@"SEL$5" "UE"@"SEL$5")
51 PARTIAL_JOIN(@"SEL$6" "O2"@"SEL$6")
52 USE_NL(@"SEL$6" "O2"@"SEL$6")
53 LEADING(@"SEL$6" "U2"@"SEL$6" "O2"@"SEL$6")
54 INDEX(@"SEL$6" "O2"@"SEL$6" ("OBJ$"."DATAOBJ#" "OBJ$"."TYPE#" "OBJ$"."OWNER#"))
55 INDEX_SS(@"SEL$6" "U2"@"SEL$6" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
56 FULL(@"SEL$18" "UE"@"SEL$18")
57 FULL(@"SEL$19" "UE"@"SEL$19")
58 PARTIAL_JOIN(@"SEL$20" "O2"@"SEL$20")
59 USE_NL(@"SEL$20" "O2"@"SEL$20")
60 LEADING(@"SEL$20" "U2"@"SEL$20" "O2"@"SEL$20")
61 INDEX(@"SEL$20" "O2"@"SEL$20" ("OBJ$"."DATAOBJ#" "OBJ$"."TYPE#" "OBJ$"."OWNER#"))
62 INDEX_SS(@"SEL$20" "U2"@"SEL$20" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
63 FULL(@"SEL$46" "UE"@"SEL$46")
64 FULL(@"SEL$47" "UE"@"SEL$47")
65 PARTIAL_JOIN(@"SEL$48" "O2"@"SEL$48")
66 USE_NL(@"SEL$48" "O2"@"SEL$48")
67 LEADING(@"SEL$48" "U2"@"SEL$48" "O2"@"SEL$48")
68 INDEX(@"SEL$48" "O2"@"SEL$48" ("OBJ$"."DATAOBJ#" "OBJ$"."TYPE#" "OBJ$"."OWNER#"))
69 INDEX_SS(@"SEL$48" "U2"@"SEL$48" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
70 PQ_FILTER(@"SEL$B34693C7" SERIAL)
71 USE_NL(@"SEL$B34693C7" "U"@"SEL$45")
72 LEADING(@"SEL$B34693C7" "O"@"SEL$45" "U"@"SEL$45")
73 INDEX(@"SEL$B34693C7" "U"@"SEL$45" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
74 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$B34693C7" "O"@"SEL$45")
75 INDEX_RS_ASC(@"SEL$B34693C7" "O"@"SEL$45" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
76 PQ_FILTER(@"SEL$6A03F9A0" SERIAL)
77 USE_NL(@"SEL$6A03F9A0" "U"@"SEL$17")
78 LEADING(@"SEL$6A03F9A0" "O"@"SEL$17" "U"@"SEL$17")
79 INDEX(@"SEL$6A03F9A0" "U"@"SEL$17" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
80 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$6A03F9A0" "O"@"SEL$17")
81 INDEX_RS_ASC(@"SEL$6A03F9A0" "O"@"SEL$17" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
82 PQ_FILTER(@"SEL$3B7221D9" SERIAL)
83 USE_NL(@"SEL$3B7221D9" "RO"@"SEL$14")
84 USE_NL(@"SEL$3B7221D9" "RO"@"SEL$42")
85 USE_NL(@"SEL$3B7221D9" "U"@"SEL$3")
86 USE_NL(@"SEL$3B7221D9" "U"@"SEL$2")
87 USE_NL(@"SEL$3B7221D9" "AC"@"SEL$2")
88 USE_NL(@"SEL$3B7221D9" "COL"@"SEL$2")
89 USE_NL(@"SEL$3B7221D9" "O"@"SEL$3")
90 USE_NL(@"SEL$3B7221D9" "CC"@"SEL$2")
91 USE_NL(@"SEL$3B7221D9" "CD"@"SEL$2")
92 USE_HASH(@"SEL$3B7221D9" "C"@"SEL$2")
93 USE_NL(@"SEL$3B7221D9" "U"@"SEL$21")
94 USE_NL(@"SEL$3B7221D9" "UI"@"SEL$14")
95 USE_NL(@"SEL$3B7221D9" "U"@"SEL$16")
96 USE_NL(@"SEL$3B7221D9" "U"@"SEL$15")
97 USE_NL(@"SEL$3B7221D9" "OI"@"SEL$14")
98 USE_NL(@"SEL$3B7221D9" "RC"@"SEL$14")
99 USE_NL(@"SEL$3B7221D9" "O"@"SEL$21")
100 USE_NL(@"SEL$3B7221D9" "C"@"SEL$14")
101 USE_HASH(@"SEL$3B7221D9" "OC"@"SEL$14")
102 USE_NL(@"SEL$3B7221D9" "U"@"SEL$31")
103 USE_NL(@"SEL$3B7221D9" "AC"@"SEL$30")
104 USE_NL(@"SEL$3B7221D9" "COL"@"SEL$30")
105 USE_NL(@"SEL$3B7221D9" "O"@"SEL$31")
106 USE_NL(@"SEL$3B7221D9" "CC"@"SEL$30")
107 USE_NL(@"SEL$3B7221D9" "CD"@"SEL$30")
108 USE_NL(@"SEL$3B7221D9" "C"@"SEL$30")
109 USE_NL(@"SEL$3B7221D9" "UI"@"SEL$42")
110 USE_NL(@"SEL$3B7221D9" "U"@"SEL$44")
111 USE_NL(@"SEL$3B7221D9" "U"@"SEL$49")
112 USE_NL(@"SEL$3B7221D9" "RC"@"SEL$42")
113 USE_NL(@"SEL$3B7221D9" "OI"@"SEL$42")
114 USE_NL(@"SEL$3B7221D9" "O"@"SEL$49")
115 USE_HASH(@"SEL$3B7221D9" "U"@"SEL$43")
116 NLJ_BATCHING(@"SEL$3B7221D9" "OC"@"SEL$42")
117 USE_NL(@"SEL$3B7221D9" "OC"@"SEL$42")
118 USE_NL(@"SEL$3B7221D9" "C"@"SEL$42")
119 LEADING(@"SEL$3B7221D9" "U"@"SEL$30" "C"@"SEL$42" "OC"@"SEL$42" "U"@"SEL$43" "O"@"SEL$49" "OI"@"SEL$42" "RC"@"SEL$42"
120 "U"@"SEL$49" "U"@"SEL$44" "UI"@"SEL$42" "C"@"SEL$30" "CD"@"SEL$30" "CC"@"SEL$30" "O"@"SEL$31" "COL"@"SEL$30" "AC"@"SEL$30
"
121 "U"@"SEL$31" "OC"@"SEL$14" "C"@"SEL$14" "O"@"SEL$21" "RC"@"SEL$14" "OI"@"SEL$14" "U"@"SEL$15" "U"@"SEL$16" "UI"@"SEL$14"
122 "U"@"SEL$21" "C"@"SEL$2" "CD"@"SEL$2" "CC"@"SEL$2" "O"@"SEL$3" "COL"@"SEL$2" "AC"@"SEL$2" "U"@"SEL$2" "U"@"SEL$3"
123 "RO"@"SEL$42" "RO"@"SEL$14")
124 NO_ACCESS(@"SEL$3B7221D9" "RO"@"SEL$14")
125 NO_ACCESS(@"SEL$3B7221D9" "RO"@"SEL$42")
126 INDEX(@"SEL$3B7221D9" "U"@"SEL$3" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
127 INDEX_RS_ASC(@"SEL$3B7221D9" "U"@"SEL$2" ("USER$"."NAME"))
128 CLUSTER(@"SEL$3B7221D9" "AC"@"SEL$2")
129 INDEX_RS_ASC(@"SEL$3B7221D9" "COL"@"SEL$2" ("COL$"."OBJ#" "COL$"."INTCOL#"))
130 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$3B7221D9" "O"@"SEL$3")
131 INDEX_RS_ASC(@"SEL$3B7221D9" "O"@"SEL$3" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
132 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$3B7221D9" "CC"@"SEL$2")
133 INDEX_RS_ASC(@"SEL$3B7221D9" "CC"@"SEL$2" ("CCOL$"."CON#" "CCOL$"."COL#"))
134 INDEX_RS_ASC(@"SEL$3B7221D9" "CD"@"SEL$2" ("CDEF$"."CON#"))
135 FULL(@"SEL$3B7221D9" "C"@"SEL$2")
136 INDEX(@"SEL$3B7221D9" "U"@"SEL$21" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
137 INDEX(@"SEL$3B7221D9" "UI"@"SEL$14" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
138 INDEX(@"SEL$3B7221D9" "U"@"SEL$16" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
139 INDEX(@"SEL$3B7221D9" "U"@"SEL$15" "I_USER#")
140 INDEX(@"SEL$3B7221D9" "OI"@"SEL$14" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
141 INDEX_RS_ASC(@"SEL$3B7221D9" "RC"@"SEL$14" ("CON$"."CON#"))
142 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$3B7221D9" "O"@"SEL$21")
143 INDEX_RS_ASC(@"SEL$3B7221D9" "O"@"SEL$21" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
144 INDEX_RS_ASC(@"SEL$3B7221D9" "C"@"SEL$14" ("CDEF$"."CON#"))
145 FULL(@"SEL$3B7221D9" "OC"@"SEL$14")
146 INDEX(@"SEL$3B7221D9" "U"@"SEL$31" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
147 CLUSTER(@"SEL$3B7221D9" "AC"@"SEL$30")
148 INDEX_RS_ASC(@"SEL$3B7221D9" "COL"@"SEL$30" ("COL$"."OBJ#" "COL$"."INTCOL#"))
149 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$3B7221D9" "O"@"SEL$31")
150 INDEX_RS_ASC(@"SEL$3B7221D9" "O"@"SEL$31" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
151 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$3B7221D9" "CC"@"SEL$30")
152 INDEX_RS_ASC(@"SEL$3B7221D9" "CC"@"SEL$30" ("CCOL$"."CON#" "CCOL$"."COL#"))
153 INDEX_RS_ASC(@"SEL$3B7221D9" "CD"@"SEL$30" ("CDEF$"."CON#"))
154 INDEX_RS_ASC(@"SEL$3B7221D9" "C"@"SEL$30" ("CON$"."OWNER#" "CON$"."NAME"))
155 INDEX(@"SEL$3B7221D9" "UI"@"SEL$42" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
156 INDEX(@"SEL$3B7221D9" "U"@"SEL$44" "I_USER#")
157 INDEX(@"SEL$3B7221D9" "U"@"SEL$49" ("USER$"."USER#" "USER$"."TYPE#" "USER$"."SPARE1" "USER$"."SPARE2"))
158 INDEX_RS_ASC(@"SEL$3B7221D9" "RC"@"SEL$42" ("CON$"."CON#"))
159 INDEX(@"SEL$3B7221D9" "OI"@"SEL$42" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
160 BATCH_TABLE_ACCESS_BY_ROWID(@"SEL$3B7221D9" "O"@"SEL$49")
161 INDEX_RS_ASC(@"SEL$3B7221D9" "O"@"SEL$49" ("OBJ$"."OBJ#" "OBJ$"."OWNER#" "OBJ$"."TYPE#"))
162 FULL(@"SEL$3B7221D9" "U"@"SEL$43")
163 INDEX(@"SEL$3B7221D9" "OC"@"SEL$42" ("CON$"."CON#"))
164 FULL(@"SEL$3B7221D9" "C"@"SEL$42")
165 INDEX_RS_ASC(@"SEL$3B7221D9" "U"@"SEL$30" ("USER$"."NAME"))
166 OUTLINE(@"SEL$49")
167 OUTLINE(@"SEL$44")
168 OUTLINE(@"SEL$43")
169 OUTLINE(@"SEL$42")
170 OUTLINE(@"SEL$21")
171 OUTLINE(@"SEL$16")
172 OUTLINE(@"SEL$15")
173 OUTLINE(@"SEL$14")
174 MERGE(@"SEL$49")
175 MERGE(@"SEL$44")
176 MERGE(@"SEL$43")
177 OUTLINE(@"SEL$DC79DD25")
178 OUTLINE(@"SEL$41")
179 MERGE(@"SEL$21")
180 MERGE(@"SEL$16")
181 MERGE(@"SEL$15")
182 OUTLINE(@"SEL$F1BBD541")
183 OUTLINE(@"SEL$13")
184 MERGE(@"SEL$DC79DD25")
185 OUTLINE(@"SEL$958BE710")
186 OUTLINE(@"SEL$40")
187 OUTLINE(@"SEL$31")
188 OUTLINE(@"SEL$30")
189 OUTLINE(@"SEL$3")
190 OUTLINE(@"SEL$2")
191 MERGE(@"SEL$F1BBD541")
192 OUTLINE(@"SEL$FFC60183")
193 OUTLINE(@"SEL$12")
194 MERGE(@"SEL$958BE710")
195 OUTLINE(@"SEL$E1ADD9E5")
196 MERGE(@"SEL$31")
197 OUTLINE(@"SEL$DCCAED8A")
198 MERGE(@"SEL$3")
199 OUTLINE(@"SEL$335DD26A")
200 MERGE(@"SEL$FFC60183")
201 OUTLINE(@"SEL$2234924E")
202 OUTLINE(@"SEL$1")
203 OUTLINE(@"SEL$11")
204 OUTLINE(@"SEL$10")
205 OUTLINE(@"SEL$29")
206 OUTLINE(@"SEL$28")
207 OUTLINE(@"SEL$39")
208 OUTLINE(@"SEL$38")
209 OUTLINE(@"SEL$57")
210 OUTLINE(@"SEL$56")
211 MERGE(@"SEL$E1ADD9E5")
212 MERGE(@"SEL$DCCAED8A")
213 MERGE(@"SEL$335DD26A")
214 MERGE(@"SEL$2234924E")
215 OUTLINE(@"SEL$AF1E34E1")
216 OUTLINE(@"SEL$45")
217 OUTER_JOIN_TO_INNER(@"SEL$AF1E34E1" "RC"@"SEL$42")
218 OUTLINE(@"SEL$3B7221D9")
219 OUTLINE(@"SEL$17")
220 MERGE(@"SEL$11")
221 OUTLINE(@"SEL$285A8194")
222 OUTLINE(@"SEL$9")
223 OUTLINE(@"SEL$8")
224 OUTLINE(@"SEL$7")
225 MERGE(@"SEL$29")
226 OUTLINE(@"SEL$6BD15B31")
227 OUTLINE(@"SEL$27")
228 OUTLINE(@"SEL$26")
229 OUTLINE(@"SEL$25")
230 MERGE(@"SEL$39")
231 OUTLINE(@"SEL$A6FE72D9")
232 OUTLINE(@"SEL$37")
233 OUTLINE(@"SEL$36")
234 OUTLINE(@"SEL$35")
235 MERGE(@"SEL$57")
236 OUTLINE(@"SEL$931DC35E")
237 OUTLINE(@"SEL$55")
238 OUTLINE(@"SEL$54")
239 OUTLINE(@"SEL$53")
240 OUTER_JOIN_TO_INNER(@"SEL$AF1E34E1" "RC"@"SEL$42")
241 OUTLINE_LEAF(@"SEL$3B7221D9")
242 PUSH_PRED(@"SEL$3B7221D9" "RO"@"SEL$42" 26)
243 OUTLINE_LEAF(@"SEL$B34693C7")
244 OUTLINE_LEAF(@"SEL$48")
245 OUTLINE_LEAF(@"SEL$47")
246 OUTLINE_LEAF(@"SEL$46")
247 PUSH_PRED(@"SEL$3B7221D9" "RO"@"SEL$14" 54)
248 OUTLINE_LEAF(@"SEL$6A03F9A0")
249 OUTLINE_LEAF(@"SEL$20")
250 OUTLINE_LEAF(@"SEL$19")
251 OUTLINE_LEAF(@"SEL$18")
252 OUTLINE_LEAF(@"SEL$6")
253 OUTLINE_LEAF(@"SEL$5")
254 OUTLINE_LEAF(@"SEL$4")
255 MERGE(@"SEL$285A8194")
256 OUTLINE_LEAF(@"SEL$96467BBE")
257 UNNEST(@"SEL$8")
258 OUTLINE_LEAF(@"SEL$6444526D")
259 OUTLINE_LEAF(@"SEL$24")
260 OUTLINE_LEAF(@"SEL$23")
261 OUTLINE_LEAF(@"SEL$22")
262 MERGE(@"SEL$6BD15B31")
263 OUTLINE_LEAF(@"SEL$86413303")
264 UNNEST(@"SEL$26")
265 OUTLINE_LEAF(@"SEL$454F554E")
266 OUTLINE_LEAF(@"SEL$34")
267 OUTLINE_LEAF(@"SEL$33")
268 OUTLINE_LEAF(@"SEL$32")
269 MERGE(@"SEL$A6FE72D9")
270 OUTLINE_LEAF(@"SEL$04C44AC2")
271 UNNEST(@"SEL$36")
272 OUTLINE_LEAF(@"SEL$5FA86079")
273 OUTLINE_LEAF(@"SEL$52")
274 OUTLINE_LEAF(@"SEL$51")
275 OUTLINE_LEAF(@"SEL$50")
276 MERGE(@"SEL$931DC35E")
277 OUTLINE_LEAF(@"SEL$141D79C4")
278 UNNEST(@"SEL$54")
279 OUTLINE_LEAF(@"SEL$B1BD3C93")
280 ALL_ROWS
281 DB_VERSION('12.1.0.2')
282 OPTIMIZER_FEATURES_ENABLE('12.1.0.2')
283 IGNORE_OPTIM_EMBEDDED_HINTS
284 END_OUTLINE_DATA
285 */
286 NULL,
287 p.owner,
288 p.table_name,
289 pc.column_name,
290 NULL,
291 f.owner,
292 f.table_name,
293 fc.column_name,
294 fc.position,
295 NULL,
296 DECODE( f.delete_rule, 'CASCADE', 0, 'SET NULL', 2, 1 ),
297 f.constraint_name,
298 p.constraint_name,
299 DECODE( f.deferrable, 'DEFERRABLE', 5, 'NOT DEFERRABLE', 7, 'DEFERRED', 6 )
300 FROM
301 all_cons_columns pc,
302 all_constraints p,
303 all_cons_columns fc,
304 all_constraints f
305 WHERE 1 = 1
306 AND f.table_name = 'CHD'
307 AND f.owner = 'MCDONAC'
308 AND f.constraint_type = 'R'
309 AND p.owner = f.r_owner
310 AND p.constraint_name = f.r_constraint_name
311 AND p.constraint_type = 'P'
312 AND pc.owner = p.owner
313 AND pc.constraint_name = p.constraint_name
314 AND pc.table_name = p.table_name
315 AND fc.owner = f.owner
316 AND fc.constraint_name = f.constraint_name
317 AND fc.table_name = f.table_name
318 AND fc.position = pc.position;
[snip]
Elapsed: 00:00:00.14
Rating
(1 rating)
Is this answer out of date? If it is, please let us know via a Comment