oracle如何降低HWM

Z__may 2022-07-25 18:06:13

使用DROP TABLE后删除了表,但是发现服务器的.dbf占用空间很大,使用以下语句查询数据文件使用情况

1 select /*+ ordered use_hash(a,b,c) */
 2 a.file_id,a.file_name,a.filesize, b.freesize,
 3 (a.filesize-b.freesize) usedsize,
 4  c.hwmsize,
 5  c.hwmsize - (a.filesize-b.freesize) unsedsize_belowhwm,
 6  a.filesize - c.hwmsize canshrinksize 
 7 from 
 8 (
 9 select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files
10 ) a,
11 (
12 select file_id,round(sum(dfs.bytes)/1024/1024) freesize from dba_free_space dfs
13 group by file_id
14 ) b,
15 (
16 select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents
17 group by file_id) c
18 where a.file_id = b.file_id
19   and a.file_id = c.file_id
20 order by unsedsize_belowhwm desc

 

其中:

File_id : 文件编号
File_name: 文件名称
File_size: 数据文件占用磁盘空间大小
Freesize:文件中被标记为free的空间大小
Usedsize: 使用的空间大小。
Hwmsize: 已经分配出去的空间大小,如果希望通过alter database datafile … resize integerM回收空间,将需要这个值作为参考,不能回收到这个值之下,否则会报错。
Freee_belowhwm_size: 在HWM(高水位标记线之下的空闲空间数),这个是理论上的可以回收的空间大小。
Curr_can_shrink: 这个是实际大小与HWM标记之间的差,就是还没有分配出去的空间大小。

 

显示File_size为24GB,Freesize为9GB,Usedsize为15GB,Hwmsize为23GB,Freee_belowhwm_size为8GB,Curr_can_shrink为1GB

也就是说我的Hwm大小为23GB,而理论上为可以缩小8GB,但是根据实际大小与HWM的差,我只能缩小1GB。

根据网上的说法(https://bbs.csdn.net/topics/310046810)是我需要先降低HWM,请问这个该如何降低HWM?

...全文
205 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-大数据 发布问题, 以便更快地解决您的疑问

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧