这个是老生产谈的事情,统计信息不准确导致sql执行异常,此次记录的主要是表的统计信息被锁住导致无法正常收集统计信息导致sql执行异常:

收集表的统计信息:

SQL> exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'crmdb', TABNAME => 'T_ORDER_DELIVERY', CASCADE => TRUE);

BEGIN DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'crmdb', TABNAME => 'T_ORDER_DELIVERY', CASCADE => TRUE); END;

*

ERROR at line 1:

ORA-20005: object statistics are locked (stattype = ALL)

ORA-06512: at "SYS.DBMS_STATS", line 24281

ORA-06512: at "SYS.DBMS_STATS", line 24332

ORA-06512: at line 1

确认出错信息:

SQL> select table_name,d.stattype_locked,D.LAST_ANALYZED,d.NUM_ROWS from user_tab_statistics d where table_name in ('T_ORDER_DELIVERY');

TABLE_NAME STATTYPE_LOCKED LAST_ANALYZED NUM_ROWS

T_ORDER_DELIVERY ALL 27-APR-2017 22:00:12 0

SQL> select count(*) from T_ORDER_DELIVERY;

COUNT(*)

1029883

说明该表的统计信息不准确,且自2017年以来都没有收集过;

解决方案:

1)解锁单个表对象:

查出schema下所有被锁定的表:

select table_name from user_tab_statistics where stattype_locked is not null;

查询单个表:

SELECT TABLE_NAME,D.STATTYPE_LOCKED,D.LAST_ANALYZED,D.NUM_ROWS FROM USER_TAB_STATISTICS D WHERE TABLE_NAME IN ('T_ORDER_DELIVERY');

然后解锁对象:

exec dbms_stats.unlock_table_stats('username','table_name');

SQL> exec dbms_stats.unlock_table_stats('crmdb','T_ORDER_DELIVERY');

PL/SQL procedure successfully completed.

再次收集统计信息:

SQL> exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'crmdb', TABNAME => 'T_ORDER_DELIVERY', CASCADE => TRUE);

PL/SQL procedure successfully completed.

SQL> select table_name,d.stattype_locked,D.LAST_ANALYZED,d.NUM_ROWS from user_tab_statistics d where table_name in ('T_ORDER_DELIVERY');

TABLE_NAME STATTYPE_LOCKED LAST_ANALYZED NUM_ROWS

T_DM_ORDER_DELIVERY 22-JAN-2019 11:07:05 1029884

解锁整个schema:

DBMS_STATS.UNLOCK_SCHEMA_STATS('username');

那么为什么这些表的统计信息会被锁定呢?

有可能是为了稳定执行计划,或者是impdp只导入metadata_only导致,或者是人为手动锁定等。正常在Oracle10g及以上,Oracle默认会根据需要自动收集统计信息,如果想要想手动锁住统计信息,

可以使用DBMS_STATS.LOCK_SCHEMA_STATS和DBMS_STATS.LOCK_TABLE_STATS包进行锁定。

oracle 收集统计信息会锁表吗,统计信息锁住导致收集统计信息失败引起sql执行异常...相关推荐

  1. oracle tabe unlock_Oracle数据库之统计信息锁住导致收集统计信息失败引起sql执行异常...

    本文主要向大家介绍了Oracle数据库之统计信息锁住导致收集统计信息失败引起sql执行异常,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 这个是老生产谈的事情,统计信息不准确导 ...

  2. mysql锁表查询_mysql锁表查询(mysql查询锁表语句)

    mysql锁表查询(mysql查询锁表语句) 2020-07-24 11:44:55 共10个回答 怎么查找mysql中的锁表语句showprocesslist;SHOWPROCESSLIST显示哪些 ...

  3. php oracle 锁表,CSS_ORACLE 中关于锁表的问题,ORACLE里锁有以下几种模式:- phpStudy...

    ORACLE 中关于锁表的问题 ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share ...

  4. oracle查看锁表进程,杀掉锁表进程

    查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo ...

  5. mysql 并发 锁表_MySQL中的锁(表锁、行锁) 并发控制锁

    https://github.com/MrLining/mysql/wiki/MySQL%E4%B8%AD%E7%9A%84%E9%94%81%EF%BC%88%E8%A1%A8%E9%94%81%E ...

  6. mysql 不锁表备份_Mysql不锁表备份之Xtrabackup的备份与恢复

    一.Xtrabackup介绍 MySQL冷备.热备.mysqldump都无法实现对数据库进行增量备份.如果数据量较大我们每天进行完整备份不仅耗时且影响性能.而Percona-Xtrabackup就是为 ...

  7. java ibatis 锁表_oracle查看被锁的表和解锁

    https://www.cnblogs.com/XQiu/p/5212787.html --以下几个为相关表 SELECT * FROM v$lock; SELECT * FROM v$sqlarea ...

  8. mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享

    [背景简介] MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),因为其速度.可靠性和适应性而备受关注.大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择.mysql ...

  9. 阿里云mysql不让锁表_MySQL中InnoDB锁不住表的原因

    MySQL中InnoDB锁不住表是因为如下两个参数的设置: mysql> show variables like '%timeout%'; +-------------------------- ...

最新文章

  1. 智源青年科学家黄高:面向高效推理的深度网络结构设计
  2. 重磅推荐!机器学习|深度学习|自然语言处理 书籍/课程/资料/资源大分享!
  3. linux+7+logger,linux日志logger命令详解
  4. proe5.0安装教程
  5. python获取当前路径下所有文件
  6. Android开发之部分字符串可实现超链接点击事件的方法
  7. 【拓扑排序】【DP】旅行计划(luogu 1137)
  8. 南邮哈夫曼编码c语言代码_漫画:“哈夫曼编码” 是什么鬼?
  9. 陶陶摘苹果(洛谷-P1046)
  10. Bailian4033 铺地毯【暴力】
  11. MySQL数据库如何建立视图
  12. mysql有rollup函数吗_MySQL-with rollup函数运用
  13. 视频流媒体服务器的作用是什么?流媒体服务器功能介绍
  14. 全志A31S源码编译
  15. python识图训练_使用tensorflow训练模式识别图片中的对象(object-detection)
  16. 人均劳动生产率的单位_生产率的单位是什么?
  17. 供货肯德基与必胜客,千味央厨上市全靠“抱大腿”?
  18. 通过层序和中序遍历序列重建二叉树
  19. 【2022年第一期 CANN训练营学习笔记】进阶班应用开发课 大作业1-开发DVPP应用,输入,输出都是JPEG图片,且分辨率不同
  20. ubuntu修改登陆用户名称_Ubuntu-修改计算机名(hostname)和修改用户名

热门文章

  1. proc文件系统探索 之 以数字命名的目录
  2. ASP.“.NET研究”NET MVC 3 —— Model的使用?
  3. 采用组策略Loopback功能限制文件夹重定向路径
  4. Ubuntu18.04安装JDK1.8.0_11
  5. Basic serial port listening application
  6. hdu1284钱币兑换问题
  7. 使用命名空间别名限定符 ::
  8. 【hive】如何设置hive以及MapReduce的压缩方式?
  9. 写在国产接口管理工具ApiPost 5.2.5发布后的一些话
  10. 接口测试工具--apipost预/后执行脚本