Oracle 11g批量减少段空间,Segment Advisor建议具体操作步骤是?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1139个文字,预计阅读时间需要5分钟。
相关专题:
直接说结论:segment advisor 本身不执行收缩,只提建议;批量收缩必须靠脚本驱动 shrink space,且需提前开启行移动。
Segment Advisor 不会自动收缩段,只生成可操作建议
很多人误以为启用 Automatic Segment Advisor 后,Oracle 就会“自动清理空间”。实际上它只做两件事:扫描段、判断哪些段存在显著空间浪费(比如已用块远少于分配块),然后把结果写进 DBA_ADVISOR_FINDINGS 和 DBA_ADVISOR_RECOMMENDATIONS。你查不到任何自动执行的 shrink 日志——它从不发 DDL 命令。
常见错误现象:SELECT * FROM DBA_ADVISOR_FINDINGS WHERE TASK_NAME LIKE 'SEGMENT%' 返回多条“reclaimable space”记录,但表大小没变、BYTES 也没降。
- 必须手动查出推荐对象,再逐个执行收缩
- 默认建议只覆盖高水位线(HWM)明显偏高的段,对小表或刚清空的表可能不触发
- Advisor 运行时不会锁表,但后续
shrink space会短暂阻塞 DML(尤其非compact模式)
如何从 Advisor 建议中提取可收缩的表并批量处理
核心是拼出合法的 ALTER TABLE ... SHRINK SPACE 语句。
本文共计1139个文字,预计阅读时间需要5分钟。
相关专题:
直接说结论:segment advisor 本身不执行收缩,只提建议;批量收缩必须靠脚本驱动 shrink space,且需提前开启行移动。
Segment Advisor 不会自动收缩段,只生成可操作建议
很多人误以为启用 Automatic Segment Advisor 后,Oracle 就会“自动清理空间”。实际上它只做两件事:扫描段、判断哪些段存在显著空间浪费(比如已用块远少于分配块),然后把结果写进 DBA_ADVISOR_FINDINGS 和 DBA_ADVISOR_RECOMMENDATIONS。你查不到任何自动执行的 shrink 日志——它从不发 DDL 命令。
常见错误现象:SELECT * FROM DBA_ADVISOR_FINDINGS WHERE TASK_NAME LIKE 'SEGMENT%' 返回多条“reclaimable space”记录,但表大小没变、BYTES 也没降。
- 必须手动查出推荐对象,再逐个执行收缩
- 默认建议只覆盖高水位线(HWM)明显偏高的段,对小表或刚清空的表可能不触发
- Advisor 运行时不会锁表,但后续
shrink space会短暂阻塞 DML(尤其非compact模式)
如何从 Advisor 建议中提取可收缩的表并批量处理
核心是拼出合法的 ALTER TABLE ... SHRINK SPACE 语句。

