本文主要向大家介绍了Oracle数据库之统计信息锁住导致收集统计信息失败引起sql执行异常,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

这个是老生产谈的事情,统计信息不准确导致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 24281ORA-06512: at "SYS.DBMS_STATS", line 24332ORA-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有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!

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

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

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

  2. oracle tabe unlock_Oracle 学习之性能优化(四)收集统计信息

    emp表有如下数据.SQL> select ename,deptno from emp; ENAME   DEPTNO ------------------------------ ------ ...

  3. oracle安装错误10301,Oracle数据库案例整理-Oracle系统运行时故障-表空间所在的目录没有可用空间导致收集统计信息失败...

    1.1       现象描述 收集数据库统计信息失败,系统显示如下错误信息: SQL> execute dbms_stats.GATHER_SCHEMA_STATS(ownname=>'i ...

  4. oracle tabe unlock_oracle数据库管理常用语句(不断更新中)

    1.删除用户及其用户下面的所有对象 drop user branch cascade; 2.删除表空间及其表空间里的所有内容 drop tablespace center INCLUDING CONT ...

  5. Oracle账号_Oracle数据库账号总是被锁?通过这里就可以发现是哪个IP造成的

    概述 简单说下背景,公司对数据库密码复杂度有一定要求,所以需要改数据库密码,因为涉及到应用这块要对应修改,但运维和开发人员却不知道具体有哪些地方配置了数据库账号密码,导致数据库账号总是被锁,所以需要看 ...

  6. oracle tabe unlock_Oracle常用命令大全集

    Oracle常用命令大全集 正在看的ORACLE教程是:Oracle常用命令大全集.第一章:日志管理 1.forcing log switches sql> alter system switc ...

  7. oracle—“操作记录已被里一个用户锁住” 解决办法

    查询锁住session SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv ...

  8. oracle tabe unlock_oracle 常用命令-数据库专栏,ORACLE

    第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> a ...

  9. oracle tabe unlock_ORACLE 全文索引 - only the lonely are free - OSCHINA - 中文开源技术交流社区...

    /*-----表名 "tablename"---字段 "name"---数据库用户名:dbname ---索引名称:i_table_name-----*/ 1- ...

最新文章

  1. java开发环境配置环境变量_3. Java开发环境的搭建:安装JDK,配置环境变量
  2. Y1ng‘s BabyCode
  3. 内网能PING通TELNET通不能访问解决
  4. recv函数返回值说明
  5. Codeforces Round #448 (Div. 2)
  6. Codeforces Good Bye 2016 题解
  7. 开启事物_《原神》全新角色甘雨登场 「浮生孰来」活动祈愿开启_新闻资讯_最新手游时评_原创手游资讯...
  8. easyui前端框架模板_.NET Core基于Ace Admin的响应式框架
  9. Java运算符——通过示例学习Java编程(6)
  10. piv图像处理文献综述_图像处理文献综述
  11. 朴素贝叶斯-垃圾邮件(中文的)处理
  12. 突然发现foxmail原来是腾讯的
  13. 快手本地生活可以入场吗
  14. 【快速简单登录认证】SpringBoot使用Sa-Token-Quick-Login插件快速登录认证
  15. python 爬虫与数据可视化
  16. 移动端一个按钮长按以及点击事件(js)
  17. 如何使用maven给Java打包
  18. Window7定期批处理删除指定文件且不弹出黑窗口的方法
  19. JPEG压缩编码流程
  20. c++ 纯 opencv 实现电表数字识别(车牌类似)

热门文章

  1. 华为oj-名字的漂亮度
  2. 惠普台式电脑引导不了系统_惠普电脑开机没有USB启动项怎么办
  3. 如何将二维码分解成链接?二维码转链接如何处理?
  4. vue-router路由参数(params和query)
  5. iPhone XS 上的 Siri 没反应怎么办?苹果手机无法使用嘿 Siri 解决方法
  6. 做聊天机器人平台就是赌博
  7. 百度起诉前高管,对方回应没有事实依据,然后百度晒出一份对方离职承诺书……...
  8. 【C++初阶11-模版进阶】解锁C++模版更多玩法
  9. Html实现视频播放器(超级简单)
  10. uniapp离线打包后APP出现未配置appkey