统计分析表的存储过程遇ORA-00600错误分析与处理
1、 统计分析表的存储过程部分内容
CREATE OR REPLACE procedure SEA.sp_analyze_XXX_a is v_sql_1 varchar2(2000); v_sql_2 varchar2(2000); v_sql_3 varchar2(2000); v_startdate date; err varchar2(2000);
begin v_sql_1 := 'alter session set workarea_size_policy=manual'; v_sql_2 := 'alter session set sort_area_size=2147483640'; EXECUTE IMMEDIATE v_sql_1; EXECUTE IMMEDIATE v_sql_2; …… |
此存储过程,为了加快统计分析表与索引的速度,採用了在运行统计分析语句前,将session的sort_area_size加大到2GB。以加大在内存中排序的比例的策略。故使用了以下两条语句:
v_sql_1 :='altersession set workarea_size_policy=manual';
v_sql_2 :='altersession set sort_area_size=2147483640';
这样的做法,对加快统计分析的速度来说。是绝对有效的,并且效果会很明显。
2、 存储过程执行常常报ORA-00600错误而中断
完整报错信息:
ORA-00600: 内部错误代码, 參数: [kcblin_3], [103], [1032192],[8192], [8193], [312], [664], [], [], [], [], []
3、原因分析
通过在metalink上找到此错误相关的參考文档:1177363.1
原由于,假设设置了memory_target来管理SGA和PGA。同一时候,手动设置了PGA的值。有可能会导致报出ORA-00600 [kcblin_3]错误
4、 验证自己的环境配置
SQL>showparameter memory_target
NAME TYPE VALUE ------------------------- --------------------- ------------------ Memory_target bit integer 200G |
SQL>showparameter pga_aggregate_target
NAME TYPE VALUE ------------------------------- ---------------------- ----------- pga_aggregate_target bit integer 20G |
果然是既配置了memory_target,。又手动配置了PGA的值。
5、 解决方法
删除或凝视存储过程中的以下四行代码。
v_sql_1 := 'alter session set workarea_size_policy=manual'; v_sql_2 := 'alter session set sort_area_size=2147483640'; EXECUTE IMMEDIATE v_sql_1; EXECUTE IMMEDIATE v_sql_2; |
问题即解决,兴许执行再也没有报过ORA-00600错误。
本文作者:黎俊杰(网名:踩点)。从事”系统架构、操作系统、存储设备、数据库、中间件、应用程序“六个层面系统性的性能优化工作
欢迎增加 系统性能优化专业群,共同探讨性能优化技术。群号:258187244
- 统计分析表的存储过程遇ORA-00600错误分析与处理
- Oracle.DataAccess.Client.OracleException ORA-00600: 内部错误代码,通过C#执行上面存储过程报错,而通过PLSQL执行不报错。谁知道原因。
- Ora-00600 4194错误的处理过程
- ORA-00600 [2662]错误解决过程
- ORA-12537:TNS:connectionclosed错误处理过程
- 存储过程中的错误处理
- Oracle - 存储过程异常处理事务分析
- ORA-00600: internal error code, arguments: [25013] 错误处理
- ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1] 错误处理一则
- 【同步复制常见错误处理3】找不到存储的过程 sp_MSins_tablename
- MySql存储过程—8、条件处理(Condition Handling) / 错误、异常处理
- 一次Oracle宕机切换后产生ORA错误的处理过程
- ORA-20000: ORU-10027: 执行存储过程的错误
- ORA-00600: internal error code, arguments: [kcratr_scan_lastbwr]错误处理
- 一次 ORA-00600错误 参数[6749]的解决过程
- MYSQL 存储过程异常处理 报错 错误代码: 1337
- Mysql存储过程中游标的使用以及错误处理
- 调试存储过程:ORA-0131 Insufficient privileges 处理
- MySQL存储过程中的错误处理 以及mybatis调用存储过程的例子
- ORA-4065错误处理过程