关于oracle对象统计信息锁定的解决办法(ORA-20005/ORA-38029)
mhr18 2024-10-09 12:03 25 浏览 0 评论
概述
之前在对某张表收集统计信息时报错ORA-20005:object statistics are locked(stattype=all),下面记录下报错的问题和怎么解决的过程,做个备忘!
问题
因为之前从11g R2里导出了几张表,然后导入到11g R2中,当时是导入成功的,然后前段时间要收集下这些表的信息,结果发现好几张表都没法收集,用DBMS_STATS包显示ORA-20005:object statistics are locked (stattype = ALL),用Analyze命令显示ORA-38029: 对象统计信息已锁定。
报错截图如下:
解决:
这里解决思路其实就是解锁,可以从两个层面去处理:
1、解锁Schema
DBMS_STATS.UNLOCK_schema_STATS(user);
2、解锁单个对象
1)先查出被锁定的表
select table_name from user_tab_statistics where stattype_locked is not null;
然后再解锁对象
exec dbms_stats.unlock_table_stats(user,'T_PX_ZG_PXNR');
2)也可直接生成sql脚本
select 'exec dbms_stats.unlock_table_stats('''||user||''','''||table_name||''');' from user_tab_statistics where stattype_locked is not null;
这里不在生成的sql中用动态的user是为了让执行者明确知道到底是解锁哪个schema下的表,防止误操作。
特别注意:
Oracle为什么会要锁定住统计信息?
一般而言,这是为了稳定执行计划,因为在Oracle 10g以上,Oracle默认会自动收集统计信息,要想锁住统计信息,请使用LOCK_SCHEMA_STATS、LOCK_TABLE_STATS包。
测试是否解决
重新分析表
BEGIN DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => 'NWPP_TEST', TABNAME => 'T_PX_ZG_PXNR', ESTIMATE_PERCENT => 100, METHOD_OPT => 'for all columns size skewonly', CASCADE => TRUE); END; /
可以看到已经没有报错了。
后面会分享更多工作中常见的问题,感兴趣的朋友可以关注下!!
相关推荐
- 盘点Java中最没用的知识⑤:这3个老古董你还在代码里“考古”?
-
一、Stack类:“继承Vector”的历史bug,为何成了性能拖油瓶?你是不是在学Java集合时,老师说过“栈结构用Stack类”?是不是在老代码里见过"newStack<>(...
- Gemini 2.5 Pro 0506发布,编程最强大模型, 碾压 Claude3.7 sonnent
-
一、Gemini2.5Pro(I/Oedition)发布1、为何叫I/Oedition?谷歌史上最强编程模型Gemini2.5Pro(I/Oedition)发布,具体型号是Gemin...
- 如何让无聊变得有趣(附本人大量美图)
-
文/图:金冬成在这条长300公里的公路上,我已经来回往返了无数次。3小时车程,一个人,想想都是多么无聊的一件事。其实,人生道路上,类似这种无聊的事情有很多很多。无聊的事情、枯燥的工作,往往让我们容易失...
- Oracle 推出 Java 24,增强 AI 支持和后量子加密
-
导读:Oracle宣布正式发布Java24,该语言增加了几个新功能,例如StreamGatherersAPI和Class-FileAPI的可用性,以及专门为AI推理和量子安全设计...
- 公司ERP突然变慢?“索引重建”这颗“药”可不能随便吃!
-
各位老板、IT小哥、财务小姐姐,有没有遇到过公司ERP系统突然卡顿得像“老爷车”,点个按钮半天没反应,急得直跺脚?这时候,可能有人会跳出来说:“我知道,重建一下数据库索引就好了!”听起来像个“神操作”...
- 基于Java实现,支持在线发布API接口读取数据库,有哪些工具?
-
基于java实现,不需要编辑就能发布api接口的,有哪些工具、平台?还能一键发布、快速授权和开放提供给第三方请求调用接口的解决方案。架构方案设计:以下是一些基于Java实现的无需编辑或只需少量编辑...
- 作为后端开发,你知道MyBatis有哪些隐藏的 “宝藏” 扩展点吗?
-
在互联网大厂后端开发领域,MyBatis作为一款主流的持久层框架,凭借其灵活的配置与强大的数据处理能力,广泛应用于各类项目之中。然而,随着业务场景日趋复杂、系统规模不断扩张,开发过程中常面临SQL...
- SpringBoot集成Mybatis-Plus分页插件
-
一、官方介绍支持的数据库mysql,oracle,db2,h2,hsql,sqlite,postgresql,sqlserver,Phoenix,Gauss,clickhouse,Sybase,Oc...
- 深度分页为何让MySQL/Oracle集体“罢工”?
-
深夜,服务器突然报警!页面加载时间飙升10倍,数据库CPU直接爆表——罪魁祸首竟是一个看似无害的“分页查询”功能。无数开发者直到系统崩溃才惊觉:深度分页,正在无声吞噬你的数据库性能!一、现象直击:...
- HPE 3PAR新增对3D NAND、Oracle加速支持
-
HewlettPackardEnterprise(HPE)在近日为其3PARStoreServ存储阵列增加了对3DNAND闪盘的支持,这将在某种程度上缓解客户购买其他存储厂商产品的情况。3D...
- Innodb中的事务隔离级别和锁的关系
-
我们都知道事务的几种性质,数据库为了维护这些性质,尤其是一致性和隔离性,一般使用加锁这种方式。同时数据库又是个高并发的应用,同一时间会有大量的并发访问,如果加锁过度,会极大的降低并发处理能力。所以对于...
- 巧用 VHD 实现多 Windows 系统共存:从原理到实战
-
在数字化办公与多元需求交织的时代,许多用户需要在同一台计算机上使用多个Windows系统,以满足不同工作场景、软件兼容性或开发测试的需求。传统的多系统安装方法往往需要对硬盘进行复杂分区,或是利用虚...
- 为什么越来越多Linux桌面系统选择Btrfs文件系统?
-
在过去很长一段时间里,Linux桌面用户安装系统时,大多数默认选项都是老牌文件系统EXT4。它稳定、简单、可靠,确实功不可没。但最近你有没有发现?越来越多的Linux桌面发行版开始默认使用一个...
- SQLite:小众?其实它比你想象的更普及,连这个领域都有人用!
-
2000年,一艘美国军舰上,数据库服务器频繁宕机,弹出“无法连接数据库”的致命报错。程序员RichardHipp被“背锅”后灵光一现:“为什么不能直接从硬盘读数据?”——这句疑问,拉开了SQLite...
- 每日学习“IT”是什么呢?(每天学习it小技巧)
-
IT是信息技术(InformationTechnology)的简称,它是一个广泛的领域,涉及到利用计算机、网络通信技术、软件等来存储、处理、传输和获取信息。计算机硬件硬件组成部分:包括中央处理器(...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 盘点Java中最没用的知识⑤:这3个老古董你还在代码里“考古”?
- Gemini 2.5 Pro 0506发布,编程最强大模型, 碾压 Claude3.7 sonnent
- 如何让无聊变得有趣(附本人大量美图)
- Oracle 推出 Java 24,增强 AI 支持和后量子加密
- 公司ERP突然变慢?“索引重建”这颗“药”可不能随便吃!
- 基于Java实现,支持在线发布API接口读取数据库,有哪些工具?
- 作为后端开发,你知道MyBatis有哪些隐藏的 “宝藏” 扩展点吗?
- SpringBoot集成Mybatis-Plus分页插件
- 深度分页为何让MySQL/Oracle集体“罢工”?
- HPE 3PAR新增对3D NAND、Oracle加速支持
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)