Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Optimizer not pushing filters down into view
> As a wild guess, I'd go for the option
> that Oracle is driving through the table
> PS_TM_PEFF_TWTCAL B - and
> therefore has to do some joins before
> it can filter on whatever tables those
> filters apply to - but it would be a good
> idea to post the output from dbms_xplan()
> and view definition.
>
>
> --
> Regards
>
> Jonathan Lewis
The dbms_xplan output doesn't display well, I've posted the tkprof output which is a little better. In the first query the filters are being pushed down into PS_TM_PEFF_GPQCAL table(180,000 rows). This trace is from a testcase, the real database has over 12 Million rows in that table. In the second query the filters are not being pushed.
It appears that we are not driving from PS_TM_PEFF_TWTCAL in the second query as you suspected.
select count(*) from PS_TM_PEFF_V_SHDAY
where BUSINESS_UNIT = 'TMUK'
and tm_shop_code = 'AA1'
and tm_date = to_date('2006-07-28','YYYY-MM-DD')
call count cpu elapsed disk query current
rows
------- ------ -------- ---------- ---------- ---------- ----------
Parse 1 0.04 0.03 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 2 0.48 0.49 0 25225 0 1
total 4 0.53 0.52 0 25225 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 34
Rows Row Source Operation
------- --------------------------------------------------- 1 SORT AGGREGATE (cr=25225 pr=0 pw=0 time=493892 us) 78 VIEW PS_TM_PEFF_V_SHDAY (cr=25225 pr=0 pw=0 time=494473 us) 78 SORT UNIQUE (cr=25225 pr=0 pw=0 time=494154 us) 78 UNION-ALL (cr=25225 pr=0 pw=0 time=489378 us) 50 FILTER (cr=25125 pr=0 pw=0 time=487689 us) 50 HASH JOIN (cr=25122 pr=0 pw=0 time=487165 us) 50 HASH JOIN (cr=25119 pr=0 pw=0 time=485286 us) 50 HASH JOIN (cr=407 pr=0 pw=0 time=9918 us) 50 HASH JOIN (cr=405 pr=0 pw=0 time=9585 us) 71 HASH JOIN (cr=26 pr=0 pw=0 time=1989 us) 1 NESTED LOOPS OUTER (cr=3 pr=0 pw=0 time=113 us) 1 INDEX UNIQUE SCAN PS_TM_PEFF_SHPMSTR (cr=1 pr=0 pw=0 time=27 us)(object id 18039) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_COEF (cr=2 pr=0 pw=0 time=61 us) 1 INDEX RANGE SCAN PS_TM_PEFF_COEF (cr=1 pr=0 pw=0 time=30 us)(object id 18031) 71 TABLE ACCESS FULL PS_TM_PEFF_CONT_DT (cr=23 pr=0 pw=0 time=407 us) 297 TABLE ACCESS FULL PS_TM_PEFF_TWTCAL (cr=379 pr=0 pw=0 time=9354 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=98 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=28 us)(object id 18041) 297 VIEW PS_TM_PEFF_V_CCEH (cr=24712 pr=0 pw=0 time=473494 us) 297 HASH GROUP BY (cr=24712 pr=0 pw=0 time=471997 us) 7555 NESTED LOOPS OUTER (cr=24712 pr=0 pw=0 time=552006 us) 7555 TABLE ACCESS FULL PS_TM_PEFF_GPQCAL (cr=1633 pr=0 pw=0 time=106241 us) 7021 VIEW (cr=23079 pr=0 pw=0 time=391079 us) 7021 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_BNCHMRK (cr=23079 pr=0 pw=0 time=270097 us) 8919 INDEX RANGE SCAN PSATM_PEFF_BNCHMRK (cr=15169 pr=0 pw=0 time=123954 us)(object id 18029) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_MFCAL (cr=3 pr=0 pw=0 time=45 us) 1 INDEX UNIQUE SCAN PS_TM_PEFF_MFCAL (cr=2 pr=0 pw=0 time=25 us)(object id 18037) 1 SORT AGGREGATE (cr=2 pr=0 pw=0 time=78 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=49 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=25 us)(object id 18041) 1 SORT AGGREGATE (cr=1 pr=0 pw=0 time=51 us) 1 FIRST ROW (cr=1 pr=0 pw=0 time=28 us) 1 INDEX RANGE SCAN (MIN/MAX) PS_TM_PEFF_COEF (cr=1 pr=0 pw=0 time=15 us)(object id 18031) 28 HASH JOIN (cr=100 pr=0 pw=0 time=4735 us) 207 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TWTCAL (cr=77 pr=0 pw=0 time=6223 us) 565 NESTED LOOPS (cr=12 pr=0 pw=0 time=22604 us) 1 NESTED LOOPS (cr=5 pr=0 pw=0 time=118 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_MFCAL (cr=3 pr=0 pw=0 time=36 us) 1 INDEX UNIQUE SCAN PS_TM_PEFF_MFCAL (cr=2 pr=0 pw=0 time=19 us)(object id 18037) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=57 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=16 us)(object id 18041) 563 INDEX RANGE SCAN PS_TM_PEFF_TWTCAL (cr=7 pr=0 pw=0 time=2364 us)(object id 18045) 1 SORT AGGREGATE (cr=2 pr=0 pw=0 time=67 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=42 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=17 us)(object id 18041) 71 TABLE ACCESS FULL PS_TM_PEFF_CONT_DT (cr=23 pr=0 pw=0time=336 us)
select count(*) from PS_TM_PEFF_V_SHDAY A, PS_TM_PEFF_TWTCAL B where A.BUSINESS_UNIT = 'TMUK'
and A.tm_shop_code = 'AA1' and A.tm_date = to_date('2006-07-28','YYYY-MM-DD') and A.BUSINESS_UNIT = B.BUSINESS_UNIT call count cpu elapsed disk query current
rows
------- ------ -------- ---------- ---------- ---------- ----------
Parse 1 0.03 0.04 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 2 12.32 12.44 97 532550 0 1
total 4 12.35 12.48 97 532550 0 1
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 34
Rows Row Source Operation
------- --------------------------------------------------- 1 SORT AGGREGATE (cr=532550 pr=97 pw=0 time=12441458 us) 878280 HASH JOIN (cr=532550 pr=97 pw=0 time=18300707 us) 78 VIEW PS_TM_PEFF_V_SHDAY (cr=532388 pr=0 pw=0 time=12050906 us) 78 SORT UNIQUE (cr=532388 pr=0 pw=0 time=12050431 us) 78 UNION-ALL PARTITION (cr=532388 pr=0 pw=0 time=12111746 us) 50 FILTER (cr=532288 pr=0 pw=0 time=12073561 us) 50 HASH JOIN (cr=532285 pr=0 pw=0 time=12072912 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_MFCAL (cr=3 pr=0 pw=0 time=58 us) 1 INDEX UNIQUE SCAN PS_TM_PEFF_MFCAL (cr=2 pr=0 pw=0 time=30 us)(object id 18037) 50 HASH JOIN (cr=532282 pr=0 pw=0 time=12010387 us) 50 HASH JOIN (cr=407 pr=0 pw=0 time=10350 us) 50 HASH JOIN (cr=405 pr=0 pw=0 time=9831 us) 71 HASH JOIN (cr=26 pr=0 pw=0 time=2209 us) 1 NESTED LOOPS OUTER (cr=3 pr=0 pw=0 time=109 us) 1 INDEX UNIQUE SCAN PS_TM_PEFF_SHPMSTR (cr=1 pr=0 pw=0 time=24 us)(object id 18039) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_COEF (cr=2 pr=0 pw=0 time=60 us) 1 INDEX RANGE SCAN PS_TM_PEFF_COEF (cr=1 pr=0 pw=0 time=30 us)(object id 18031) 71 TABLE ACCESS FULL PS_TM_PEFF_CONT_DT (cr=23 pr=0 pw=0 time=410 us) 297 TABLE ACCESS FULL PS_TM_PEFF_TWTCAL (cr=379 pr=0 pw=0 time=9348 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=97 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=27 us)(object id 18041) 297 VIEW PS_TM_PEFF_V_CCEH (cr=531875 pr=0 pw=0 time=12003688 us) 29560 HASH GROUP BY (cr=531875 pr=0 pw=0 time=12114210 us) 180056 NESTED LOOPS OUTER (cr=531875 pr=0 pw=0 time=11523675 us) 180035 TABLE ACCESS FULL PS_TM_PEFF_GPQCAL (cr=1633 pr=0 pw=0 time=720193 us) 139751 VIEW (cr=530242 pr=0 pw=0 time=10314447 us) 139751 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_BNCHMRK (cr=530242 pr=0 pw=0 time=7085955 us) 180430 INDEX RANGE SCAN PSATM_PEFF_BNCHMRK (cr=361366 pr=0 pw=0 time=3409995 us)(object id 18029) 1 SORT AGGREGATE (cr=2 pr=0 pw=0 time=98 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=51 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=19 us)(object id 18041) 1 SORT AGGREGATE (cr=1 pr=0 pw=0 time=110 us) 1 FIRST ROW (cr=1 pr=0 pw=0 time=31 us) 1 INDEX RANGE SCAN (MIN/MAX) PS_TM_PEFF_COEF (cr=1 pr=0 pw=0 time=16 us)(object id 18031) 28 HASH JOIN (cr=100 pr=0 pw=0 time=6539 us) 207 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TWTCAL (cr=77 pr=0 pw=0 time=6477 us) 565 NESTED LOOPS (cr=12 pr=0 pw=0 time=27120 us) 1 NESTED LOOPS (cr=5 pr=0 pw=0 time=158 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_MFCAL (cr=3 pr=0 pw=0 time=56 us) 1 INDEX UNIQUE SCAN PS_TM_PEFF_MFCAL (cr=2 pr=0 pw=0 time=31 us)(object id 18037) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=76 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=24 us)(object id 18041) 563 INDEX RANGE SCAN PS_TM_PEFF_TWTCAL (cr=7 pr=0 pw=0 time=2369 us)(object id 18045) 1 SORT AGGREGATE (cr=2 pr=0 pw=0 time=67 us) 1 TABLE ACCESS BY INDEX ROWID PS_TM_PEFF_TCJR (cr=2 pr=0 pw=0 time=38 us) 2 INDEX RANGE SCAN PS_TM_PEFF_TCJR (cr=1 pr=0 pw=0 time=17 us)(object id 18041) 71 TABLE ACCESS FULL PS_TM_PEFF_CONT_DT (cr=23 pr=0 pw=0time=348 us)