📜  plsql 检查所有数据库占用了多少空间 - SQL (1)

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

PL/SQL检查所有数据库占用了多少空间 - SQL

在Oracle数据库中,我们可以使用以下脚本来检查每个表、索引和分区的大小,以及整个数据库使用的总空间量。

SET PAGESIZE 1000
SET LINESIZE 200
COLUMN owner FORMAT A10
COLUMN segment_name FORMAT A25
COLUMN segment_type FORMAT A15
COLUMN tablespace_name FORMAT A15
SELECT owner,
       segment_name,
       segment_type,
       tablespace_name,
       BYTES / 1024 / 1024 AS MB
FROM   (SELECT owner,
               segment_name,
               segment_type,
               tablespace_name,
               SUM(bytes) BYTES
        FROM dba_segments
        GROUP BY owner,
                 segment_name,
                 segment_type,
                 tablespace_name)
ORDER BY MB DESC;

这个脚本将返回一个包含数据库中每个表、索引和分区的名称、所属表空间和占用空间的列表。列表按照占用空间的大小进行排序,并且以MB为单位显示。

此外,我们还可以使用以下SQL语句来计算整个数据库所占用的总空间量:

SELECT SUM(bytes) / 1024 / 1024 / 1024 AS "Database Size (GB)"
FROM dba_data_files;

这个脚本将返回整个数据库使用的总空间量,以GB为单位显示。

以上的脚本都是基于PL/SQL语言编写的。通过运行这些脚本,我们可以很容易地了解数据库的占用空间情况,并对数据库的管理和维护进行优化。

参考链接: