oracle存储过程处理数据过慢解决方法之一

原创 2016年05月30日 09:56:50
Oracle调度程序慢,数据量大,可以以下两种解决方法,你试一下:
1、清理回收站,purge dba_recyclebin,后续也可以关闭回收站,z注意的是系统不属于OLTP系统,使用此方法才不会有影响
关闭回收站不影响系统使用(alter system set recyclebin=off deferred);
2、查看这个程序中执行到哪一步花费时间比较多,对执行花费时间较长段的表进行统计收集,以下是统计手机的执行语句:
DECLARE
  CURSOR cur_core_table_list IS
    SELECT table_name
      FROM dba_tables
     WHERE owner = 'PAS'
       AND table_name IN
           ('KHDX_JG','KHDX_JGCC');


  v_sql VARCHAR2(1000 CHAR);
BEGIN
  FOR v_rec IN cur_core_table_list LOOP
    DBMS_STATS.gather_table_stats(ownname          => 'PAS',
                                  tabname          => v_rec.table_name,
                                  estimate_percent => 15,
                                  method_opt       => 'FOR ALL INDEXED COLUMNS',
                                  degree           => 5,
                                  cascade          => TRUE,
                                  no_invalidate    => FALSE);
  END LOOP;

END;


--索引分析
DECLARE
   CURSOR cur_core_indexes_list
   IS
      SELECT index_name
        FROM dba_indexes
       WHERE owner = 'PAS'
             AND table_name IN
                     ('KHDX_JG','KHDX_JGCC');


   v_sql   VARCHAR2 (1000 CHAR);
BEGIN
   FOR v_rec IN cur_core_indexes_list
   LOOP
      DBMS_STATS.gather_index_stats (ownname            => 'PAS',
                                     indname            => v_rec.index_name,
                                     estimate_percent   => 15,
                                     degree             => 5,
                                   /*  cascade            => TRUE,*/
                                     no_invalidate      => FALSE);
   END LOOP;
END;
版权声明:本文为博主原创文章,未经博主允许不得转载。

基于Oracle PLSQL的存储过程性能优化方法案例

【前言】:最近忙着一个项目,Oracle有个JOB基于定时任务处理,经过我多次冥思苦索优化后,该存储过程最终依然需要花费1小时6分。这个JOB处理是为了生成年度、季度、月度三张统计分析报表以供用户查询...

Oracle数组的使用

1、一维数组的使用 DECLARE --创建数组 TYPE T_USER_VARRAY IS VARRAY(200) OF VARCHAR(50); MY_...

oracle 数据库提高查询的方法

oracle数据库查询优化
  • Alecor
  • Alecor
  • 2017年09月08日 11:07
  • 171

Oracle 存储过程 无法编译 解决方法

昨天整理了一下shutdown过程中db hang住的问题,参考:Oracleshutdown 过程中 DBhang住 解决方法http://blog.csdn.net/tianlesoftware/...

Oracle 存储过程 无法编译 解决方法(转)

Oracle 存储过程 无法编译 解决方法(转) 今天同事修改存储过程又导致2个过程无法被编译,流程规范上的东西,Dave 这里不多说,看看怎么解决问题。 1. 查看无效对象 XEZF@xezf(...

oracle存储过程被调用时出现"rowid"无效或"对象不再存在"的解决方法

自己在写ASP.net程序时,需要调用以前的数据库,由于自己刚接触asp.net和oracle。所以在程序中调用存储过程时真是煞费苦心。刚一开始,自己不知道怎么写,在网上搜索,终于找到了关于这方面的源...

oracle数据库表死锁或者存储过程,包无法编辑解决方法

一般数据库中存储过程无法编辑,包无法编辑,导致的原因都是因为表的死锁,解决方法 1.一般情况只部署在一台机器的数据库可以单独杀死实例视图里所锁死的表即可. --查看该实例锁死对象 SELECT ...

Oracle 存储过程 无法编译 解决方法

本文转自:Dave 的 http://blog.csdn.net/tianlesoftware/article/details/7412555  今天同事修改存储过程又导致2个过程无...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle存储过程处理数据过慢解决方法之一
举报原因:
原因补充:

(最多只允许输入30个字)