IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    收集统计信息报ORA-00600 16515问题解决

    惜分飞发表于 2024-05-18 04:38:03
    love 0

    联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

    标题:收集统计信息报ORA-00600 16515问题解决

    作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

    在一套win 11.2.0.1的数据库在收集统计信息报ORA-600 16515错误

    SQL> exec dbms_stats.gather_database_stats_job_proc();
    BEGIN dbms_stats.gather_database_stats_job_proc(); END;
    
    *
    第 1 行出现错误:
    ORA-00600: ????????????, ????: [16515], [U], [40], [6376], [1], [0], [], [],
    [], [], [], []
    ORA-06512: ?? "SYS.DBMS_STATS", line 31228
    ORA-06512: ?? line 1
    
    
    SQL> exec dbms_stats.gather_database_stats(estimate_percent=>100,degree=>4,cascade=>true,granularity=>'ALL');
    BEGIN dbms_stats.gather_database_stats(estimate_percent=>100,degree=>4,cascade=>true,granularity=>'ALL'); END;
    
    *
    第 1 行出现错误:
    ORA-00600: ????????????, ????: [16515], [U], [40], [6376], [1], [0], [], [],
    [], [], [], []
    ORA-06512: ?? "SYS.DBMS_STATS", line 25335
    ORA-06512: ?? "SYS.DBMS_STATS", line 25511
    ORA-06512: ?? "SYS.DBMS_STATS", line 25467
    ORA-06512: ?? line 1
    

    确认报错对象

    SQL> select owner, object_name, object_type
      2  from sys.dba_objects
      3  where object_id =6375;
    
    OWNER
    ------------------------------
    OBJECT_NAME
    --------------------------------------------------------------------------------
    OBJECT_TYPE
    -------------------
    SYS
    WRI$_SQLMON_USAGE
    TABLE
    

    对对象进行处理,确认对象本身没有问题,尝试收集统计信息依旧报错

    SQL> alter table WRI$_SQLMON_USAGE move;
    
    表已更改。
    
    SQL> select index_name from dba_indexes where table_name='WRI$_SQLMON_USAGE';
    
    未选定行
    
    SQL> SELECT COUNT(1) FROM WRI$_SQLMON_USAGE;
    
      COUNT(1)
    ----------
             1
    
    SQL> exec dbms_stats.gather_database_stats_job_proc();
    BEGIN dbms_stats.gather_database_stats_job_proc(); END;
    
    *
    第 1 行出现错误:
    ORA-00600: ????????????, ????: [16515], [U], [40], [6376], [1], [0], [], [],
    [], [], [], []
    ORA-06512: ?? "SYS.DBMS_STATS", line 31228
    ORA-06512: ?? line 1
    

    删除统计再尝试

    SQL> exec dbms_stats.delete_table_stats(ownname=>'SYS',tabname=>'WRI$_SQLMON_USAGE');
    
    PL/SQL 过程已成功完成。
    
    SQL> exec dbms_stats.gather_database_stats_job_proc();
    BEGIN dbms_stats.gather_database_stats_job_proc(); END;
    
    *
    第 1 行出现错误:
    ORA-00600: ????????????, ????: [16515], [U], [40], [6376], [1], [0], [], [],
    [], [], [], []
    ORA-06512: ?? "SYS.DBMS_STATS", line 31228
    ORA-06512: ?? line 1
    

    使用ANALYZE收集统计信息正常

    SQL> ANALYZE TABLE  WRI$_SQLMON_USAGE  COMPUTE STATISTICS FOR ALL INDEXED COLUMNS;
    
    表已分析。
    
    

    删除hist_head$中对应报错行记录,ORA-00600 16515问题解决

    SQL> SELECT rowid,obj#,intcol#,timestamp# FROM hist_head$ WHERE obj#=6376 AND intcol#=1;
    
    ROWID                    OBJ#    INTCOL# TIMESTAMP#
    ------------------ ---------- ---------- --------------
    AAAAHAAABAAAIELABQ       6376          1 01-4?  -24
    
    SQL> ALTER SYSTEM FLUSH SHARED_POOL;
    
    系统已更改。
    
    SQL>  DELETE FROM hist_head$ WHERE ROWID='AAAAHAAABAAAIELABQ';
    
    已删除 1 行。
    
    SQL> COMMIT;
    
    提交完成。
    
    SQL> begin
      2  dbms_stats.delete_table_stats ( ownname => user, tabname => 'WRI$_SQLMON_USAGE', cascade_parts => true, cascade_col
    umns => true, cascade_indexes => true, force => true);
      3  end;
      4  /
    
    PL/SQL 过程已成功完成。
    
    SQL> exec dbms_stats.gather_database_stats_job_proc();
    
    PL/SQL 过程已成功完成。
    
    

    参考文档:DBMS_STATS.DELETE_TABLE_STATS Fails With ORA-600 [16515] (Doc ID 1233745.1)

    • DBMS_STATS常用方法(收集oracle信息)
    • 重建DBMS_STATS包
    • ORA-12012: error on auto execute of job “SYS”.”ORA$AT_OS_OPT_SY_383″
    • 重现sql执行计划SYS_OP_C2C隐式转换
    • 数据库升级遭遇ORA-04063: package body “SYS.DBMS_SQLTUNE”
    • 记录一次存储异常数据库恢复后遗症ORA-600[kafspa:columnBuffer1]错误处理
    • 手动提交分布式事务一例
    • pl/sql的定义者与调用者
    • 使用dbms_metadata.get_ddl出现ORA-31605错误
    • 表在线重定义(有主键)
    • 数据库收集统计信息属于dml操作
    • Oracle直方图理解与实验


沪ICP备19023445号-2号
友情链接