设为首页 加入收藏

TOP

一个表空间使用率查询sql的优化(八)
2015-11-21 01:35:13 来源: 作者: 【 】 浏览:10
Tags:一个 空间 使用率 查询 sql 优化
TFTHCTSN"[NUMBER,22], "HC"."KTFTHCSZ"[NUMBER,22], "HC"."KTFTHCCVAL"[NUMBER,22] 69 - "V"."FNNUM"[NUMBER,22], "V"."FNTYP"[NUMBER,22], "V"."FNFNO"[NUMBER,22], "V"."FNNAM"[VARCHAR2,513] 70 - "HC"."KTFTHCTFNO"[NUMBER,22], "HC"."KTFTHCTSN"[NUMBER,22], "HC"."KTFTHCSZ"[NUMBER,22], "HC"."KTFTHCCVAL"[NUMBER,22] 71 - "TS".ROWID[ROWID,10], "TS"."TS#"[NUMBER,22], "TS"."NAME"[VARCHAR2,30], "TS"."BLOCKSIZE"[NUMBER,22] 72 - "TS".ROWID[ROWID,10] 73 - "TF"."TFNUM"[NUMBER,22], "TF"."TFSTA"[NUMBER,22], "TF"."TFFNH"[NUMBER,22], "TF"."TFDUP"[NUMBER,22] 74 - "USED_SPACE"[NUMBER,22], "FREE_SPACE"[NUMBER,22] 75 - (#keys=1) "TS"."NAME"[VARCHAR2,30], SUM("HC"."KTFTHCFREE"*"TS"."BLOCKSIZE")[22], SUM(("HC"."KTFTHCSZ"-"HC"."KTFTHCFREE")*"TS"."BLOCKSIZE")[22] 76 - "TS"."NAME"[VARCHAR2,30], "TS"."BLOCKSIZE"[NUMBER,22], "HC"."KTFTHCSZ"[NUMBER,22], "HC"."KTFTHCFREE"[NUMBER,22] 77 - "TS"."TS#"[NUMBER,22], "TS"."NAME"[VARCHAR2,30], "TS"."BLOCKSIZE"[NUMBER,22] 78 - "TS".ROWID[ROWID,10], "TS"."NAME"[VARCHAR2,30] 79 - "HC"."INST_ID"[NUMBER,22], "HC"."KTFTHCTSN"[NUMBER,22], "HC"."KTFTHCSZ"[NUMBER,22], "HC"."KTFTHCFREE"[NUMBER,22], "HC"."KTFTHCCVAL"[NUMBER,22] 450 rows selected.

针对执行计划比较长的sql语句,第一眼看有没有明显的问题,如TABLE ACCESS FULL、MERGE JOIN CARTESIAN等,这些会给sql带来较差的性能问题。

一眼看去,全是系统基表,不敢乱动。那么在执行计划56行那块,有个全表扫描,最要命的是上面还有一个笛卡尔积。下面来看看recyclebin$表中有多少行记录:

SQL> select count(1) from RECYCLEBIN$;

  COUNT(1)
----------
    697111
接近70万行记录,难怪1小时也跑不出来。
清除recyclebin:

?

?

SQL> purge dba_recyclebin;

DBA Recyclebin purged.

SQL> select count(1) from recyclebin$;

  COUNT(1)
----------
      3334
    

再次运行sql:

?

?

SQL> set timing on;
SQL>            set linesize 200;
SQL>            set pagesize 1000;
SQL>            col tablespace_name for a20;
SQL>            col Total(M)  for 999,999,999;
SQL>            col USED(M) for 999,999,999;
SQL>            col FREE(M) for 999,999,999;
SQL>            SELECT D.TABLESPACE_NAME,
  2                    SPACE "Total(M)",
  3                    SPACE - NVL(FREE_SPACE, 0) "USED(M)",
  4                    ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) "USED(%)",
  5                    FREE_SPACE "FREE(M)"
  6               FROM (SELECT TABLESPACE_NAME,
  7                            ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
  8                            SUM(BLOCKS) BLOCKS
  9                       FROM DBA_DATA_FILES
 10                      GROUP BY TABLESPACE_NAME) D,
 11                    (SELECT TABLESPACE_NAME,
 12                            ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE
 13                       FROM DBA_FREE_SPACE
 14                      GROUP BY TABLESPACE_NAME) F
 15              WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
 16             UNION ALL --if have tempfile
 17             SELECT D.TABLESPACE_NAME,
 18                    SPACE "Total(M)",
 19                    USED_SPACE "USED(M)",
 20                    ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) "USED(%)",
 21                    NVL(FREE_SPACE, 0) "FREE(M)"
 22               FROM (SELECT TABLESPACE_NAME,
 23                            ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
 24                            SUM(BLOCKS) BLOCKS
 25                       FROM DBA_TEMP_FILES
 26                      GROUP BY TABLESPACE_NAME) D,
 27                    (SELECT TABLESPACE_NAME,
 28                            ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
 29                            ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
 30                       FROM V$TEMP_SPACE_HEADER
 31                      GROUP BY TABLESPACE_NAME) F
 32              WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
 33              ORDER BY 4;

20 rows selected.

Elapsed: 00:00:04.17

Execution Plan
----------------------------------------------------------
Plan hash value: 3967328987

-------------------------------------------------------------------------------------
首页 上一页 5 6 7 8 9 10 下一页 尾页 8/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇分区表:range分区,list分区,ha.. 下一篇MongoDB使用总结(C#版)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: