📜  架构 oracle 中所有表的大小 - SQL (1)

📅  最后修改于: 2023-12-03 15:10:42.686000             🧑  作者: Mango

架构 Oracle 中所有表的大小 - SQL

在 Oracle 数据库中,我们经常需要查看表的大小,以便进行数据库性能优化和存储空间管理。本文将介绍一个 SQL 查询,用于架构 Oracle 数据库中所有表的大小。

SQL 查询

以下是查询所有表大小的 SQL:

SELECT tablespace_name,
  table_name,
  to_char(sum(bytes)/1024/1024,'999,999,990.99') as size_mb
FROM dba_segments
WHERE segment_type='TABLE'
GROUP BY tablespace_name, table_name
ORDER BY tablespace_name, table_name;
查询结果

执行上述 SQL 查询后,将返回架构 Oracle 数据库中所有表的大小。查询结果包含表空间名称、表名称以及表的大小(以 MB 为单位)。

示例输出如下:

| tablespace_name | table_name | size_mb | |-----------------|------------|-------------| | EXAMPLE | DEPT | 0.49 MB | | EXAMPLE | EMP | 1.49 MB | | SYSTEM | AQ$_SCHEDULE_TABLE | 0.01 MB | | SYSTEM | DEF$_AQCALL | 0.01 MB | | SYSTEM | I_WRI$_OPTSTAT_HISTOGRAM_DATA_55734 | 0.19 MB | | SYSTEM | I_WRI$_OPTSTAT_HIST_HEAD_HISTORY_55734 | 0.05 MB | | SYSTEM | I_WRI$_OPTSTAT_HIST_HEAD_HISTORY_OBJ# | 0.03 MB | | SYSTEM | I_WRI$_OPTSTAT_HIST_HEAD_PK | 0.03 MB | | ... | ... | .... |

解析

该查询从 DBA_SEGMENTS 数据字典中获取所有表的大小,并过滤掉非表类型的存储段。然后,将结果按表空间名称和表名称进行分组,并按升序排列。最终输出结果包含表空间名称、表名称和表大小(以 MB 为单位)。

结论

通过使用上述 SQL 查询,在架构 Oracle 数据库中查找表的大小,可帮助我们更好地管理数据库性能和存储空间。