如何使用SQL查询显示Oracle模式大小?

Pet*_*zov 22 sql oracle oracle11g

我有一个包含70多个表的Oracle模式.我想创建一个简单的页面,可以显示表占用的硬盘空间.我如何用SQL查询获取此值?

PS以及我如何获得Oracle架构版本?

Jus*_*ave 45

你可能想要

SELECT sum(bytes)
  FROM dba_segments
 WHERE owner = <<owner of schema>>
Run Code Online (Sandbox Code Playgroud)

如果您以架构所有者身份登录,则还可以

SELECT SUM(bytes)
  FROM user_segments
Run Code Online (Sandbox Code Playgroud)

这将为您提供在用户所拥有的任何表空间中分配给用户所拥有的对象的空间.可能会有空的空间分配给这些查询所分配的表.


bio*_*nfo 9

如果您只想计算没有表空间可用空间和索引的模式大小:

select
   sum(bytes)/1024/1024 as size_in_mega,
   segment_type
from
   dba_segments
where
   owner='<schema's owner>'
group by
   segment_type;
Run Code Online (Sandbox Code Playgroud)

对于所有模式

select
   sum(bytes)/1024/1024 as size_in_mega, owner
from
   dba_segments
group by
  owner;
Run Code Online (Sandbox Code Playgroud)