博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle碎片整理
阅读量:4043 次
发布时间:2019-05-24

本文共 1870 字,大约阅读时间需要 6 分钟。

生产环境中,经常会遇到表由于数据不断插入,导致空间越来越大,由于前期配置问题,没有做分区或者其他优化,而且生产数据实时向表插入。要删除历史数据来释放空间。所以DBA一般都需要定期去对Oracle表碎片做整理,数据库碎片包含两个方面:

表中碎片化:
使用alter table <table_name> shrink space cascade; 整理表碎片,不会锁表,产生较多归档,
查询可以收缩多少碎片前需要准确统计信息,收缩完成后,会更新dba_tables视图里的BLOCKS值.
检查表空间碎片率FSFI为1%。使用shrink方式整理碎片较高的对象,以释放空间:
alter table <table_name> enable row movement; --打开行移动
alter table <table_name> shrink space cascade; --压缩表及索引并下调HWM(一般使用该参数)
alter table <table_name> shrink space compact; --只压缩不下调HWM
alter table <table_name> shrink space ; --下调HWM,会有阻塞,建议在业务低峰时间段。
alter table <table_name> disable row movement; --关闭行移动
可以使用如下语句找出此表空间下碎片较高的对象(查询前需要确认统计信息的准确性):

SELECT TABLE_NAME, (BLOCKS * 8192 / 1024 / 1024) - (NUM_ROWS * AVG_ROW_LEN / 1024 / 1024) "Data lower than HWM in MB" FROM DBA_TABLES WHERE tablespace_name = 'TEST' order by 2 desc;

使用如下语句resize表空间大小:

–查询可收缩多少

select file_name,ceil((nvl(hwm,1)*(select value from v$parameter where name='db_block_size'))/1024/1024) smallest,ceil(blocks*(select value from v$parameter where name='db_block_size')/1024/1024) currsize,ceil(blocks*(select value from v$parameter where name='db_block_size')/1024/1024)-ceil((nvl(hwm,1)*8192)/1024/1024) savingsfrom dba_data_files a,(select file_id,max(block_id+blocks+7) hwm from dba_extents where tablespace_name='BAPBUP3'group by file_id ) bwhere a.file_id=b.file_id(+) and tablespace_name='TEST1';

–生成resize数据文件语句

select 'alter database datafile '''||file_name||''' resize ' ||ceil((nvl(hwm,1)*(select value from v$parameter where name='db_block_size'))/1024/1024)||'m;' cmdfrom dba_data_files a,(select file_id,max(block_id+blocks+7) hwmfrom dba_extents where tablespace_name='TEST1'group by file_id) bwhere b.file_id=a.file_id(+)and ceil(blocks*(select value from v$parameter where name='db_block_size')/1024/1024)-ceil((nvl(hwm,1)*(select value from v$parameter where name='db_block_size'))/1024/1024)>0;

转载地址:http://jlmdi.baihongyu.com/

你可能感兴趣的文章
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
js弹窗插件
查看>>
自定义 select 下拉框 多选插件
查看>>
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>
linux和windows内存布局验证
查看>>
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux dump_backtrace
查看>>
linux irqdebug
查看>>