我们发现了一张表的高水位线(hwm)比较大,想尝试使用shrink table(表空间收缩)来优化。

shrink操作需要启用行迁移功能。可以通过执行alter table TTRD_OTC_INSTRUMENT_EVAL enable row movement;来实现。然而,此操作会导致引用该表的对象(如存储过程、包、视图等)变为无效。需要运行utlrp.sql来重新编译这些无效的对象。
但是在我尝试运行时,遇到了错误:ORA-10631 : SHRINK clause should not be specified for this object。
原来是因为表上建立了函数索引。
于是我先删除了这两个索引:
drop index IDX_OTC_INSTRUMENT_EVAL_DATE;drop index IDX_TTRD_OTC_INSTRUMENT_EVAL;
然后开始收缩表:
超能文献
超能文献是一款革命性的AI驱动医学文献搜索引擎。
105 查看详情
ALTER TABLE TTRD_OTC_INSTRUMENT_EVAL SHRINK SPACE CASCADE;ALTER INDEX PK_TTRD_OTC_INSTRUMENT_EVAL SHRINK SPACE ;
接着手动收集统计信息:
begindbms_stats.gather_table_stats(ownname => 'XIR_TRD', tabname => 'TTRD_OTC_INSTRUMENT_EVAL');end;
结果没有成功,真是让人哭笑不得。下次再研究吧。
本文除注明转载/出处的内容外,均为原创。转载请务必署名并注明出处。最后编辑时间:2021/05/17 17:10:54
以上就是记一次失败的shrink table(表空间收缩)的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/943516.html
微信扫一扫
支付宝扫一扫