优化器统计跟踪(SYS.EXP_HEAD$ SYS.EXP_OBJ$ SYS.EXP_STAT$不)导致表空间 SYSAUX不断增长
资料来自support文档 ID 2354960.1
环境:
aws rds 19c(亚马逊云oracle 数据库)
背景:
在一次查看数据库表段的占用空间大小的时候,无意间发现其中EXP_开头的表占用很大的空间,如下:
处理:
- 优化器表达式跟踪在具有以下对象的 SYSAUX 中分配了过多空间:
- Awrinfo 报告按以下对象显示大段使用情况
SYS.EXP_HEAD$
SYS.EXP_OBJ$
SYS.EXP_STAT$
统计监控在 12.2 中默认启用。12.2 中的新优化器功能引入了监视表达式统计信息,以收集 SQL 查询中的表达式使用统计信息。
监控功能由隐含参数“_column_tracking_level”控制。
当监控表达式统计处于活动状态时,默认情况下启用。
然而,扯淡的是云上oracle参数组根本关闭不了这个参数(没有这个参数)
注意:in-memory 关闭对 SQL 的执行计划没有影响。详情查看网页 https://blogs.oracle.com/optimizer/expression-tracking
--禁用参数:_column_tracking_level
alter system set "_column_tracking_level"=17 scope=both;
--wait 10 minutes
--purge 表里面的数据
truncate table sys.exp_head$ drop storage;
truncate table sys.exp_obj$ drop storage;
truncate table sys.exp_stat$ drop storage;
alter index SYS.I_EXP_HEAD$ rebuild tablespace sysaux online;
alter index SYS.I_EXP_STAT$ rebuild tablespace sysaux online;
alter index SYS.I_EXP_OBJ$ rebuild tablespace sysaux online;
--如果需要重启监控
alter system set "_column_tracking_level"=21 scope=both;
注意:在执行这些步骤时,可能会遇到错误 ORA-00600: [qosdExpObjChange: rc!=1],这是内部错误 28681153 的结果:内部 PDCDB : ORA-00600:: [QOSDEXPSTATREAD: EXPCNT MISMATCH]。在这种情况下,可能需要重新启动数据库。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律