ITPub博客

首页 > 数据库 > Oracle > Oracle 性能优化-expdp备份速度优化02

Oracle 性能优化-expdp备份速度优化02

原创 Oracle 作者:chenoracle 时间:2020-02-13 22:29:27 0 删除 编辑

Oracle 性能优化 -expdp 备份速度优化 02

 

环境:

OS:Windows Server 2012

DB:Oracle 11.2.0.1.0

服务器:DELL R730

问题:

早上巡检,发现其中一个系统数据库 备份 耗时7 个多小时,之前都是 4 个小时左右,突然多了三个小时时间。

问题分析:

收集数据库备份时间段的AWR 报告。

发现在数据库备份期间,有一个SQL 执行了 2001 次,平均单次耗时 12 秒,争抢了大量资源,导致备份时间延长。

耗时SQL 如下

SELECT  "T0"."FID"

   FROM  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   : 1   AND  "T0"."FCONTROLUNITID" =   : 2 )

    AND   ROWNUM   <=   1

查看SQL 执行计划

select   *   from   table ( dbms_xplan.display_cursor ( '5gnuqq0kwqtaq' ));

select   *   from   table ( dbms_xplan.display_awr ( '5gnuqq0kwqtaq' ));

查看SQL 绑定变量信息:

select   *   from  dba_hist_sqlbind where  sql_id = '5gnuqq0kwqtaq' ;

将绑定信息带入SQL执行,耗时11.591秒:

SELECT  "T0"."FID"

   FROM  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   '2018-12-24-inteLog-0000661807'   AND

       "T0"."FCONTROLUNITID" =   'ocIAAAAAQmjM567U' )

    AND   ROWNUM   <=   1

查看执行计划

问题很明显,大表没有合适的索引,并且谓词条件选择性很高,适合创建索引。

select   count (*)   from  CT_JCZ_INTERFACELOG ;    ---966435

---1

select   count (*)   

   from  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   '2018-12-24-inteLog-0000661807'   AND

       "T0"."FCONTROLUNITID" =   'ocIAAAAAQmjM567U' )

创建索引

create   index  I_CT_JCZ_INTERFACELOG_001 on  CT_JCZ_INTERFACELOG ( FNUMBER );

时间缩短到0.062秒

SELECT  "T0"."FID"

   FROM  "CT_JCZ_INTERFACELOG" "T0"

  WHERE   ( "T0"."FNUMBER" =   '2018-12-24-inteLog-0000661807'   AND

       "T0"."FCONTROLUNITID" =   'ocIAAAAAQmjM567U' )

    AND   ROWNUM   <=   1

查看执行计划

第二天查看备份耗时恢复正常

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-2675519/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle 11g OCP、Oracle 11g OCM、OCMU 用户组成员,微信公众号"IT小Chen"

注册时间:2014-08-05

  • 博文量
    429
  • 访问量
    888443