前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Oracle 查看表空间大小命令

Oracle 查看表空间大小命令

作者头像
Linux运维技术之路
发布2025-02-19 21:43:29
发布2025-02-19 21:43:29
13600
代码可运行
举报
运行总次数:0
代码可运行

— 系列专栏文章 —

Linux基础系列/监控系列(Zabbix|Prometheus)

容器化系列/数据库系列

安全系列/持续集成系列

Nginx系列/压力测试系列

AI-大模型-人工智能

在 Oracle 数据库中,查看表空间的大小和使用情况是数据库管理的重要任务之一。以下是查询表空间大小的常用 SQL 语句及其解释。


1. 查询表空间的总大小、已使用空间和剩余空间

以下 SQL 查询可以返回每个表空间的总大小、已使用空间和剩余空间(单位为 MB)。

SQL 查询:
代码语言:javascript
代码运行次数:0
复制
SELECT 
    tablespace_name AS "表空间名称",
    ROUND(SUM(bytes) /1024/1024, 2) AS "总大小(MB)",
    ROUND((SUM(bytes) - NVL(SUM(free_space), 0)) /1024/1024, 2) AS "已使用(MB)",
    ROUND(NVL(SUM(free_space), 0) /1024/1024, 2) AS "剩余(MB)",
    ROUND((SUM(bytes) - NVL(SUM(free_space), 0)) /SUM(bytes) *100, 2) AS "使用率(%)"
FROM (
    SELECT
        tablespace_name,
        SUM(bytes) AS bytes,
        NULLAS free_space
    FROM dba_data_files
    GROUPBY tablespace_name
    UNIONALL
    SELECT
        tablespace_name,
        NULLAS bytes,
        SUM(bytes) AS free_space
    FROM dba_free_space
    GROUPBY tablespace_name
)
GROUPBY tablespace_name
ORDERBY tablespace_name;
输出示例:

表空间名称

总大小(MB)

已使用(MB)

剩余(MB)

使用率(%)

SYSTEM

500.00

300.00

200.00

60.00

SYSAUX

800.00

500.00

300.00

62.50

USERS

200.00

100.00

100.00

50.00


2. 查询表空间的详细信息

如果您需要更详细的表空间信息(如数据文件路径和大小),可以使用以下查询。

SQL 查询:
代码语言:javascript
代码运行次数:0
复制
SELECT 
    tablespace_name AS "表空间名称",
    file_name AS "数据文件路径",
    ROUND(bytes / 1024 / 1024, 2) AS "文件大小(MB)",
    ROUND(MAXBYTES / 1024 / 1024, 2) AS "最大扩展大小(MB)",
    AUTOEXTENSIBLE AS "是否自动扩展"
FROM dba_data_files
ORDER BY tablespace_name, file_name;
输出示例:

表空间名称

数据文件路径

文件大小(MB)

最大扩展大小(MB)

是否自动扩展

SYSTEM

/u01/app/oracle/oradata/sys.dbf

500.00

1000.00

YES

USERS

/u01/app/oracle/oradata/usr.dbf

200.00

500.00

YES


3. 查询临时表空间的大小

临时表空间(Temporary Tablespace)用于排序、哈希等操作。以下是查询临时表空间大小的 SQL。

SQL 查询:
代码语言:javascript
代码运行次数:0
复制
SELECT 
    tablespace_name AS "表空间名称",
    ROUND(SUM(bytes) / 1024 / 1024, 2) AS "总大小(MB)"
FROM dba_temp_files
GROUP BY tablespace_name
ORDER BY tablespace_name;
输出示例:

表空间名称

总大小(MB)

TEMP

1000.00


4. 查询表空间的使用率

如果只需要查看表空间的使用率,可以使用以下简化查询。

SQL 查询:
代码语言:javascript
代码运行次数:0
复制
SELECT 
    a.tablespace_name AS "表空间名称",
    ROUND(a.total_size /1024/1024, 2) AS "总大小(MB)",
    ROUND((a.total_size - b.free_size) /1024/1024, 2) AS "已使用(MB)",
    ROUND(b.free_size /1024/1024, 2) AS "剩余(MB)",
    ROUND((a.total_size - b.free_size) / a.total_size *100, 2) AS "使用率(%)"
FROM (
    SELECT tablespace_name, SUM(bytes) AS total_size
    FROM dba_data_files
    GROUPBY tablespace_name
) a
LEFTJOIN (
    SELECT tablespace_name, SUM(bytes) AS free_size
    FROM dba_free_space
    GROUPBY tablespace_name
) b
ON a.tablespace_name = b.tablespace_name
ORDERBY a.tablespace_name;

5. 查询表空间的扩展信息

如果您需要检查表空间是否可以自动扩展,以及当前的扩展状态,可以使用以下查询。

SQL 查询:
代码语言:javascript
代码运行次数:0
复制
SELECT 
    tablespace_name AS "表空间名称",
    file_name AS "数据文件路径",
    ROUND(bytes /1024/1024, 2) AS "当前大小(MB)",
    ROUND(MAXBYTES /1024/1024, 2) AS "最大扩展大小(MB)",
    AUTOEXTENSIBLE AS "是否自动扩展",
    INCREMENT_BY * (SELECTvalueFROM v$parameterWHERE name ='db_block_size') /1024/1024AS "每次扩展大小(MB)"
FROM dba_data_files
ORDERBY tablespace_name, file_name;
输出示例:

表空间名称

数据文件路径

当前大小(MB)

最大扩展大小(MB)

是否自动扩展

每次扩展大小(MB)

SYSTEM

/u01/app/oracle/oradata/sys.dbf

500.00

1000.00

YES

10.00


6. 注意事项

  1. 1. 权限要求
    • • 执行上述查询需要具有访问 DBA_DATA_FILESDBA_FREE_SPACEDBA_TEMP_FILES 视图的权限。
    • • 如果没有这些权限,可以尝试使用 USER_TABLESPACESALL_TABLESPACES 视图,但结果可能不完整。
  2. 2. 单位转换
    • bytes 是以字节为单位的值,通常需要除以 1024 * 1024 转换为 MB。
  3. 3. 临时表空间
    • • 临时表空间的信息存储在 DBA_TEMP_FILES 中,而不是 DBA_DATA_FILES
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux运维技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 查询表空间的总大小、已使用空间和剩余空间
    • SQL 查询:
    • 输出示例:
  • 2. 查询表空间的详细信息
    • SQL 查询:
    • 输出示例:
  • 3. 查询临时表空间的大小
    • SQL 查询:
    • 输出示例:
  • 4. 查询表空间的使用率
    • SQL 查询:
  • 5. 查询表空间的扩展信息
    • SQL 查询:
    • 输出示例:
  • 6. 注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档