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存储过程中需要循环的游标数据量过大 的解决办法

create or replace procedure ProcessLegacyData Is v_count Number; --总记录数 c_count Number; --循...

查看Oracle中存储过程长时间被卡住的原因

我们的系统采用了Oracle 10G数据库。在运行过程中,经常发生一些存储过程执行时间很长,比如几天,远超过我们的预期。这时候就要查看一下,当前执行此存储过程的回话等待事件是什么,再进一步决定如何处理...
  • fupei
  • fupei
  • 2012-11-30 13:35
  • 14688

oracle中job长时间执行没有结束

一些项目中使用了job定期执行sql语句。如果要执行的sql语句是基于dblink对远程数据库的访问,那么有时候就会出现该sql语句长时间执行一直不结束的情况。并且这时在远程数据库上并没有锁导致该sq...
  • fupei
  • fupei
  • 2012-03-06 16:19
  • 9101

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

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

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

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

php在执行mysql存储过程后执行其他数据库操作问题解决方法

问题描述:php在执行mysql存储过程后执行其他数据库操作时,报错Commands out of sync; you can't run this command now 产生原因:1、存储过程产生...

“找不到存储过程’’ … 错误:2812”的解决方法

from: http://blog.csdn.net/rqzhong/article/details/3332673 先声明一下产生该错误的原因:        在SQL SERVER 2...

未能找到存储过程 'sp_oacreate'解决方法

未能找到存储过程 sp_oacreate。未能找到存储过程 sp_oamethod。未能找到存储过程 sp_oamethod。未能找到存储过程 sp_oadestroy。 在还原数据库的时候出现"错误...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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