如何在Oracle中确定表大小

Ber*_*ers 18 oracle oracle11g

我使用Oracle 11并想要找出我的表的大小(如以兆字节为单位).我该怎么办?我应该检查服务器上的文件大小吗?或者是否有任何查询要运行?

use*_*256 37

如果您没有DBA权限,则可以使用user_segments表:

select bytes/1024/1024 MB from user_segments where segment_name='Table_name'
Run Code Online (Sandbox Code Playgroud)

  • `bytes/1024`返回kiBytes而不是MBytes (3认同)
  • 谢谢,上面的查询非常棒,因为通常我们没有 DBA 访问权限。 (3认同)

小智 25

这是一个查询,您可以在SQL Developer(或SQL*Plus)中运行它:

SELECT DS.TABLESPACE_NAME, SEGMENT_NAME, ROUND(SUM(DS.BYTES) / (1024 * 1024)) AS MB
  FROM DBA_SEGMENTS DS
  WHERE SEGMENT_NAME IN (SELECT TABLE_NAME FROM DBA_TABLES)
 GROUP BY DS.TABLESPACE_NAME,
       SEGMENT_NAME;
Run Code Online (Sandbox Code Playgroud)