分析函数改写SQL-创新互联
1.old sql:

SELECT a.object_id,
a.object_name,
b.max_id,
b.min_id
FROM HH a,
( SELECT owner, MAX (object_id) AS max_id, MIN (object_id) AS min_id
FROM HH
GROUP BY owner) b
WHERE a.last_ddl_time BETWEEN TO_DATE ('2010-01-01', 'yyyy-mm-dd')
AND TO_DATE ('2012-01-01', 'yyyy-mm-dd')
AND a.owner IN ('MESDEV', 'RPTDEV')
and a.owner=b.owner;
Elapsed: 00:00:25.50 Execution Plan ---------------------------------------------------------- ----------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| ----------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2 | 254 | 433 (2)| | 1 | HASH GROUP BY | | 2 | 254 | 433 (2)| | 2 | HASH JOIN | | 2 | 254 | 432 (1)| | 3 | TABLE ACCESS FULL| HH | 2 | 194 | 216 (1)| | 4 | TABLE ACCESS FULL| HH | 661 | 19830 | 216 (1)| ----------------------------------------------------------------- Note ----- - 'PLAN_TABLE' is old version Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 1904 consistent gets 0 physical reads 0 redo size 111609 bytes sent via SQL*Net to client 2670 bytes received via SQL*Net from client 200 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 2977 rows processed
2.new sql
SELECT a.object_id,
a.object_name,
a.max_id,
a.min_id
FROM (SELECT object_id,
object_name,
last_ddl_time,
MAX (object_id) OVER (PARTITION BY owner) AS max_id,
MIN (object_id) OVER (PARTITION BY owner) AS min_id
FROM HH
WHERE owner IN ('MESDEV', 'RPTDEV')) a
WHERE a.last_ddl_time BETWEEN TO_DATE ('2010-01-01', 'yyyy-mm-dd')
AND TO_DATE ('2012-01-01', 'yyyy-mm-dd');
Elapsed: 00:00:00.09 Execution Plan ---------------------------------------------------------- ----------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| ----------------------------------------------------------------- | 0 | SELECT STATEMENT | | 661 | 75354 | 217 (2)| | 1 | VIEW | | 661 | 75354 | 217 (2)| | 2 | WINDOW SORT | | 661 | 64117 | 217 (2)| | 3 | TABLE ACCESS FULL| HH | 661 | 64117 | 216 (1)| ----------------------------------------------------------------- Note ----- - 'PLAN_TABLE' is old version Statistics ---------------------------------------------------------- 1 recursive calls 0 db block gets 952 consistent gets 0 physical reads 0 redo size 108149 bytes sent via SQL*Net to client 2670 bytes received via SQL*Net from client 200 SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 2977 rows processed
网站题目:分析函数改写SQL-创新互联
文章网址:http://www.jxjierui.cn/article/ccpjje.html


咨询
建站咨询
