问题描述
oracle的表空间碎片如何查询,到什么样的程度oracle表空间中的碎片需要整理
专家解答
首先要收集表的统计信息,然后通过统计信息计算出实际空间于user_extents占用的空间相比,一般碎片超过25%就可以考虑shrink或者move整理表碎片。
查询SQL参考:
select t.table_name, avg_row_len * num_rows / (1 - pct_free / 100) / 8192 actual_block, alloc_block, 1 - ((avg_row_len * num_rows / (1 - pct_free / 100) / 8192) / alloc_block) percen, 'alter table '||t.table_name||'enable row movement'||';' enable_row, 'alter table '||t.table_name||'shrink space'||';' ddl_shrink from (select segment_name, sum(blocks) alloc_block from user_extents having sum(blocks) > 8 group by segment_name) a, user_tables t where a.segment_name = t.table_name and t.table_name='XXXX' order by 4 des
最后修改时间:2019-04-25 17:38:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。