- 0
- 0
- 约2千字
- 约 3页
- 2017-08-16 发布于浙江
- 举报
ORACLE 收缩表空间的数据文件
在实际的应用中经常会遇到TRUNCATE或者DELETE表中的数据后发现表空间并没有将空间进行释放,磁盘空间被告占用感觉空间白白被浪费掉了。
提供一个回收表空间的简单方法供参考:
通过下面的SQL语句查看表空间总大小及实用大小,然后拼出来一个SQL语句将表空间的数据文件重新设定大小
select alter database datafile || a.file_name || resize ||round(a.filesize - (a.filesize - c.hwmsize - 100) * 0.8) || M;,a.filesize || M as 数据文件的总大小,c.hwmsize || M as 数据文件的实用大小from (select file_id, file_name, round(bytes / 1024 / 1024) as filesizefrom dba_data_files) a,(select file_id, round(max(block_id) * 8 / 1024) as HWMsizefrom dba_extentsgroup by file_id) cwhere a.file_id = c.file_idand a.filesize - c.hwmsize 100; 上面的那个SQL语句运行可能是有点慢下
原创力文档

文档评论(0)