服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Oracle - Oracle查询表占用的空间(表大小)

Oracle查询表占用的空间(表大小)

2023-10-16 16:23tttzzzqqq2018 Oracle

Oracle查询表占用的空间(表大小)方法一:使用dbms_space包的object_space_usage函数来查表大小情况。方法二:查dba_extents视图。方法三:查dba_segments视图。

Oracle查询表占用的空间(表大小)

一、方法一:使用dbms_space包的object_space_usage函数来查表大小情况。

上SQL:

DECLARE
  su NUMBER;
  sa NUMBER;
  cp NUMBER;
BEGIN
  dbms_space.object_space_usage('LOG'
                               ,'BIG_TABLE'
                               ,'TABLE'
                               ,NULL
                               ,su
                               ,sa
                               ,cp);
  dbms_output.put_line('Space Used: ' || to_char(su));
  dbms_output.put_line('Space Allocated: ' || to_char(sa));
  dbms_output.put_line('Chained Percentage: ' || to_char(cp));
END;

输出结果:

Oracle查询表占用的空间(表大小)

Oracle查询表占用的空间(表大小)

Oracle查询表占用的空间(表大小)

二、方法二:查dba_extents视图。

上SQL:

SELECT segment_name "表名",
       segment_type "对象类型",
       sum(bytes) / 1024 / 1024 "占用空间(MB)"
  FROM dba_extents
 WHERE 1=1
   -- AND segment_name = '表名'
 GROUP BY segment_name, segment_type
 ORDER BY "占用空间(MB)" DESC;

Oracle查询表占用的空间(表大小)

三、方法三:查dba_segments视图。

上SQL:

SELECT owner,
       segment_name,
       segment_type,
       sum(bytes) / 1024 / 1024 "占用空间(MB)"
  FROM dba_segments
 WHERE 1=1
    -- AND owner = '表所有者'
 GROUP BY owner, segment_name, segment_type
 ORDER BY "占用空间(MB)" DESC;

Oracle查询表占用的空间(表大小)

到此这篇关于Oracle查询表占用的空间(表大小)的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/tttzzzqqq2018/article/details/132255487

延伸 · 阅读

精彩推荐