Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24855742
  • 博文数量: 271
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-12 15:28
文章分类

全部博文(271)

文章存档

2010年(71)

2009年(164)

2008年(36)

我的朋友

分类: Oracle

2010-05-12 10:16:35

Oracle数据文件收缩

1.查看数据文件的使用情况
包括内容:数据文件大小,已经used空间,free空间,hwm信息

Java代码 复制代码
  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标记之间的差,就是还没有分配出去的空间大小。


2.收缩表空间
Java代码 复制代码
  1. alter database datafile 'datafilename' resize 598M  
阅读(5015) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~