oracle存储过程处理数据过慢解决方法之一
2016-05-30 09:56
363 查看
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;
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;
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- 数据库链接字符串查询网站
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- 我是运营,我没有假期
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- DB2实例管理
- DB2实例管理
- OS block size和Oracle block size,查找OS Blocksize的方法
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- oracle中创建数据库和表空间的几点总结
- Tomcat端口被占用解决方法(不用重启)