【问题标题】:How to determine tables size in Oracle [duplicate]如何确定Oracle中的表大小[重复]
【发布时间】:2015-01-16 17:14:19
【问题描述】:

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

【问题讨论】:

标签: oracle oracle11g


【解决方案1】:

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

select bytes/1024/1024 MB from user_segments where segment_name='Table_name'

【讨论】:

  • 谢谢,上面的查询很棒,因为通常我们没有 DBA 访问权限。
【解决方案2】:

这是一个查询,您可以在 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;

【讨论】:

  • 查询很有用,但不包括索引。索引大小见dba.stackexchange.com/questions/1151/…
  • DBA/USER SEGMENTS 仍然显示表信息,即使已删除,有没有办法刷新信息或强制新水印?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-19
  • 2020-04-24
  • 2011-02-11
  • 1970-01-01
相关资源
最近更新 更多