xzh2000的博客 本人提供杭州地区Oracle现场技术支持服务,包括性能调整、DataGuard、RAC等。
13 11, 2006
10gR2中关于tablespace usage的数据字典视图
作者 xzh2000 14:36 | Permalink 静态链接网址 | Comments 最新回复 (4) | Trackback 引用 (0) | 技术交流

在10g以前的版本中,如果查表空间的使用情况,需要对某些数据字典视图进行聚合,统计出表空间(含临时表空间)的使用情况,偶博客中有个改进的统计表空间使用的脚本;在10g中,统计表空间的使用情况就比较简单了,ORACLE已经给我们提供了可以直接查看表空间使用情况的数据字典视图:


SQL> col tablespace_name format a12
SQL> select * from dba_tablespace_usage_metrics;
TABLESPACE_N USED_SPACE TABLESPACE_SIZE USED_PERCENT
------------ ---------- --------------- ------------
SYSAUX 16376 4194302 .390434451
SYSTEM 32512 4194302 .775146854
TEMPTS 512 4194302 .012207037
TESTSP 3400 4194302 .081062356
UNDOTS 160 4194302 .003814699
在这里要做一下说明,used_space与tablespace_size单位都是block,如果想看到比较直观的结果,需要针对不同的block size做一下转换。这里需要注意的是,如果表空间的数据文件是自动扩展的,那tablespace_size就是它可以扩展的最大尺寸,如果表空间的block size是8k,那最大的数据文件就是32g。

Comments

奇怪,我用dba_tablespace_usage_metrics查出来的表空间使用率在6%,而dba_data_files与dba_free_space计算出来的却在97.65625%??
不是说dba_tablespace_usage_metrics计算了没有删除但没有回收的对象么,怎么利用比率反而更小了???

作者 tony 21 03 2007, 10:06

我们一个跑了一年多的系统(有很多老数据DROP了),用dba_tablespace_usage_metrics查出来就全是占用97%了.
呵呵,其实如果都purge了,用dba_free_space查也是挺快的.

作者 adam 16 11 2006, 14:17

哦,没有注意到这个东东,这不很好吗?实际对象并没有真正从DATAFILE中消失,所以含在一块也是应该的.

作者 xzh. 16 11 2006, 13:55

这个表查出的使用率和dba_data_files与dba_free_space计算的结果不一致.
因为dba_tablespace_usage_metrics计算使用率时包含了已经drop但是还没有purge的表所使用的空间.

作者 adam 16 11 2006, 10:29
博客日历
« 三月 2010 »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
搜索
最新发表
文章分类
文章归档
网站链接
新闻聚合