日期:2014-05-17  浏览次数:20782 次

oracle基本查询问题
想看看表空间的使用情况,结果在网上搜了一下出来好多都是这东西,不理解,求解释

查看表物理文件大小:select segment_name,bytes/1024/1024 from user_segments/dba_segments;
这个地方我想查询单个表的物理文件大小该怎么查啊,上面的是全部(segment_name,这个字段是上面意思啊)



查看表空间使用情况的SQL语句:  
SELECT  
a.tablespace_name "表空间名",
total 表空间大小,
free 表空间剩余大小,  
(total-free) 表空间使用大小, 
ROUND((total-free)/total,4)*100 "使用率 %"  
FROM 
(SELECT tablespace_name,SUM(bytes) free FROM DBA_FREE_SPACE GROUP BY tablespace_name ) a,  
(SELECT tablespace_name,SUM(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name) b  
WHERE a.tablespace_name=b.tablespace_name  
查看表空间使用情况的语句为什么用到子查询啊
路过的朋友支招啊  


------解决方案--------------------
主要的是搞懂这几个系统视图的含义。
DBA_FREE_SPACE 计算数据文件、表空间剩余空间大小
DBA_DATA_FILES 计算数据文件定义的大小
DBA_SEGMENTS 计算段使用的大小

计算表的大小:
select segment_name,bytes/1024/1024 from user_segments group by segment_name 

简单的方式,百度这几个视图