分析函数改写SQL-创新互联

1.old sql:

德化ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
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://myzitong.com/article/ccpjje.html