1、            统计分析表的存储过程部分内容

CREATE
OR REPLACE
procedure SEA.sp_analyze_XXX_a
is

v_sql_1    
varchar2);

v_sql_2    
varchar2);

v_sql_3    
varchar2);

v_startdate
date;

err        
varchar2);

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错误分析与处理的更多相关文章

  1. 在SSMS里批量删除表、存储过程等各种对象

    在SSMS里批量删除表.存储过程等各种对象 以前想找批量删除表或者存储过程的方法,原来SSMS的GUI界面也可以完成 请看下图,因为这次出差的时候要删除所有的存储过程,然后重建这些存储过程 而表.函数 ...

  2. 利用sql批量删除表,存储过程

    利用sql批量删除表,存储过程. 最近用godaddy的空间,由于系统里面的表多,一个个的删除很麻烦,就网上搜集了一下解决方法. 给大家分享一下: 1.批量删除存储过程 declare @procNa ...

  3. sqlserver使用户只能在某个架构下建立表和存储过程

    1.首先,建立一个用户之后,默认的架构是dbo,默认的角色是public.这种情况下,这个用户将看不到dbo以及其他架构下的对象.除非单独进行授权.   2.新建一个架构test,然后使得这个架构的所 ...

  4. SQLServer2008/2012 删除所有表视图存储过程

    SQLServer2008/2012 删除所有表视图存储过程 -------------------删除所有的表-------------------use xuwenbin111--/第1步**** ...

  5. 关于EF执行返回表的存储过程

    1.关于EF执行返回表的存储过程 不知道为什么EF生成的存储过程方法会报错,以下方法可以使用,call是MySQL执行存储过程的命令 [HttpGet] public HttpResponseMess ...

  6. sql:Oracle11g 表,视图,存储过程结构查询

    -- Oracle 11 G --20160921 涂聚文再次修改 --Geovin Du --GetTables SELECT owner, object_name, created FROM al ...

  7. sql:MySQL 6.7 表,视图,存储过程结构查询

    #数据库MySQL 6.7 use sakila; #查询表名 show tables; # SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA. ...

  8. sql server快速删除整个数据库表和存储过程

    情况:在远程数据库删除表执行太慢,表过多,数据库无权删除 结果:保留空数据库 方法:利用sql语句,查询网络文摘解决. 说明: 有些有约束,不能直接delete,需要先删除所有约束,语句: DECLA ...

  9. sql通用分页自定义表条件存储过程

    create PROCEDURE PrcTestByPage ( @tablename varchar(50), @selectfilter varchar(100), @orderbyfilter ...

随机推荐

  1. [Oracle] 临时将Physical Standby激活

    Oracle 10g/11g下如何将物理Standby库临时激活用于测试 在实际运营环境中, 我们经常碰到类似这样的需求: 譬如想不影响现网业务评估DB补丁在现网环境中运行的时间, 或者是想在做DB切 ...

  2. template相关

    template模板是c++中支持多态的工具,使用模板可以使用户为类或函数声明一种一般的模式,使得该模板试用于任意类型的参数. 函数模板: 定义如下: template <typename T& ...

  3. (一)为什么要学习docker

    一.docker的历史与现状 1.PAAS平台的范围和内容 1.确定产品定位和需求,确定首次迭代的范围. 2.制作界面原型. 以下是 paas 范畴 .技术选型,然后根据技术选型为每个开发者搭建开发环 ...

  4. Oracle 表分区partition(http://love-flying-snow.iteye.com/blog/573303)

    http://www.jb51.net/article/44959.htm Oracle表分区分为四种:范围分区,散列分区,列表分区和复合分区. 一:范围分区 就是根据数据库表中某一字段的值的范围来划 ...

  5. 分享Kali Linux 2017年第18周镜像文件

     分享Kali Linux 2017年第18周镜像文件  Kali Linux官方于4月30日发布2017年的第18周镜像.这次维持了11个镜像文件的规模.默认的Gnome桌面的4个镜像,E17.KD ...

  6. hosts文件中同一个域名两个IP的解析顺序

    比如: 192.168.0.2 www.easonjim.com 192.168.0.3 www.easonjim.com 那么解析顺序就只有最开头的IP,即:192.168.0.2 经过测试,相同域 ...

  7. JS版汉字与拼音互转终极方案,附简单的JS拼音

    前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字 ...

  8. CBIntrospector俗称:内部检查工具

    Download View Introspector   (CBIntrospector)内部检查工具是IOS和IOS模拟器的小工具集,帮助在调试的UIKit类的用户界面,它尤其有用于动态UI布局创建 ...

  9. Http头 Range、Content-Range

    HTTP头中一般断点下载时才用到Range和Content-Range实体头,Range用户请求头中,指定第一个字节的位置和最后一个字节的位置,如(Range:200-300)Content-Rang ...

  10. php报错配置问题

    在开发的时候php.ini ,要显示所有的错误 error_reporting=E_ALL | E_STRICT 在发布的时候可以显示除了notice之外的错误,打开错误记录功能 error_repo ...