在ORACLE数据库中,如何计算一个表所占用的存储空间呢?我们可以通过系统视图DBA_SEGMENTS、USER_SEGMETNS、DBA_TABLES来查看一个表所占空间的大小,如下所示:

 
SELECT SEGMENT_NAME              TABLE_NAME
      ,SUM(BLOCKS)               BLOCKS
      ,SUM(BYTES)/(1024*1024)    "TABLE_SIZE[MB]"
FROM USER_SEGMENTS
WHERE  SEGMENT_TYPE='TABLE'
   AND SEGMENT_NAME=&TABLE_NAME
GROUP BY SEGMENT_NAME;
 
 
SELECT SEGMENT_NAME              TABLE_NAME
      ,SUM(BLOCKS)               BLOCKS
      ,SUM(BYTES)/(1024*1024)    "TABLE_SIZE[MB]"
FROM DBA_SEGMENTS
WHERE  SEGMENT_TYPE='TABLE'
   AND SEGMENT_NAME=&TABLE_NAME
GROUP BY SEGMENT_NAME;

相关文章: