7

oracle表空间碎片整理

问题归档 2019-03-20
637
摘要:oracle的表空间碎片如何查询,到什么样的程度oracle表空间中的碎片需要整理

问题描述

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
「喜欢文章,快来给作者赞赏墨值吧」

评论

0
7
最新发布
暂无内容,敬请期待...
数据库资讯
最新 热门 更多
本月热门
近期活动
全部
暂无活动,敬请期待...
相关课程
全部
暂无课程,敬请期待...