oracle表空间碎片整理

问题归档 2019-03-20
233
7 0
摘要: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
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
近期活动
全部
相关课程
全部