暂无图片
分享
dbaking
2023-09-01
如何释放Oracle数据库数据文件多余空间?

如何释放Oracle数据库数据文件多余空间?

收藏
分享
2条回答
默认
最新
C+1

```sql
set lines 199 pagesize 100
set COLSEP ‘|’
col name for a60
select a.file#,
a.name,
round(a.bytes/1024/1024,2) CurrentMB,
round((HWM * a.block_size)/1024/1024,2) ResizeTo,
round((a.bytes - HWM * a.block_size)/1024/1024,2) ReleaseMB
from v$datafile a,
(SELECT file_id, MAX(block_id + blocks - 1) HWM
FROM DBA_EXTENTS
GROUP BY file_id) b
where a.file# = b.file_id(+)
And (a.bytes - HWM * a.block_size) > 0
and rownum < 10
order by ReleaseMB;
```

批量回收数据文件空间语句

```sql
set lines 199 pagesize 100
set COLSEP ‘|’
col RESIZECMD for a80
select a.file#,
round(a.bytes/1024/1024,2) CurrentMB,
round((HWM * a.block_size)/1024/1024,2) ResizeTo,
round((a.bytes - HWM * a.block_size)/1024/1024,2) ReleaseMB,
‘alter database datafile ‘’’ || a.name || ‘’’ resize ’ ||ceil((HWM * a.block_size)/1024/1024)|| ‘m;’ ResizeCmd
from v$datafile a,
(SELECT file_id, MAX(block_id + blocks - 1) HWM
FROM DBA_EXTENTS
GROUP BY file_id) b
where a.file# = b.file_id(+)
And (a.bytes - HWM * a.block_size) > 0
and rownum < 10
order by ReleaseMB;
```

暂无图片 评论
暂无图片 有用 0
暂无图片
dbaking
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏