不可轻言放弃,否则对不起自己!

表与表空间大小查询

上一篇 / 下一篇  2012-12-20 11:01:42 / 个人分类:数据库

查看表大小

有两种含义的表大小:一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:

select segment_name, bytes

from user_segments

where segment_type = 'TABLE';

或者

Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name

 

另一种表实际使用的空间。这样查询:

analyze tableAREAINFOcompute statistics;

 

select   TABLE_NAME,TABLESPACE_NAME, NUM_ROWS ,AVG_ROW_LEN,  NUM_ROWS*AVG_ROW_LEN  

from user_tables

where table_name = 'AREAINFO';

说明:

表名称要大写,红色加粗部分。

 

查看每个表空间的大小

Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name

 

 

查看剩余表空间大小

SELECT tablespace_name表空间,sum(blocks*8192/1000000)剩余空间M FROM dba_free_space GROUP BY tablespace_name;

 

检查系统中所有表空间总体空间

select b.name,sum(a.bytes/1000000)总空间from v$datafile a,v$tablespace b where a.ts#=b.ts# group by b.name;

通过多个视图获取表空间信息

select

a.a1表空间名称,

c.c2类型,

c.c3区管理,

 b.b2/1024/1024表空间大小M,

 (b.b2-a.a2)/1024/1024已使用M,

 substr((b.b2-a.a2)/b.b2*100,1,5)利用率

from

(select tablespace_name a1, sum(nvl(bytes,0)) a2 from dba_free_space group by tablespace_name) a,

 

  (select tablespace_name b1,sum(bytes) b2 from dba_data_files group by tablespace_name) b,

 

  (select tablespace_name c1,contents c2,extent_management c3 from dba_tablespaces) c

  where a.a1=b.b1 and c.c1=b.b1;

 

 

该语句通过查询dba_free_spacedba_data_filesdba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以为单位的表空间大小,已使用的表空间大小及表空间利用率。dba_free_space表描述了表空间的空闲大小,dba_data_files表描述了数据库中的数据文件,dba_tablespaces表描述了数据库中的表空间。

  上面语句中from子句后有三个select语句,每个select语句相当于一个视图,视图的名称分别为abc,通过它们之间的关联关系,我们得到了表空间的相关信息。

TAG:

 

评分:0

我来说两句

Open Toolbar