oracle查询表空间大全

    如何查看每个表空间的大小?如何查看剩余表空间大小 以及如何检查系统中所有表空间总体空间?如何查询整个数据库剩余和使用的表空间大小使用情况?如何查看表空间的名字及文件所在位置?…等等问题汇总后集中解答。

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

select segment_name,
       bytes/1024/1024 as "分配空间M"
  from user_segments
 where segment_type = 'TABLE';

–或者

select segment_name,
          sum(bytes) / 1024 / 1024
     from user_extents
    group by segment_name;

查询出来的是:表名称和分配的空间。

查询实际使用的表空间大小

select table_name,
       (num_rows * avg_row_len) / 1024 / 1024 as "实际占用M"
  from user_tables;

查询表空间占用大小

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 df.tablespace_name "表空间名",
       totalspace "总空间M",
       freespace "剩余空间M",
       round((1 - freespace / totalspace) * 100, 2) "使用率%"
  from (select tablespace_name, round(sum(bytes) / 1024 / 1024) totalspace
          from dba_data_files
         group by tablespace_name) df,
       (select tablespace_name, round(sum(bytes) / 1024 / 1024) freespace
          from dba_free_space
         group by tablespace_name) fs
 where df.tablespace_name = fs.tablespace_name;

查询表空间名称以及所在位置

select tablespace_name,
       file_id,
       file_name,
       round(bytes / (1024 * 1024), 0) total_space
  from dba_data_files
 order by tablespace_name

©声明:本站原创文章采用 BY-NC-SA 共享协议,受法律保护,转载请注明出处;转载文章版权归原作者所有。
©转载请注明来源:

未经允许不得转载:最优质网--最有指望 » oracle查询表空间大全

赞 (0) 打赏

评论 0

评论前必须登录!

登陆 注册

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏