插件窝 干货文章 如何查看oracle表空间

如何查看oracle表空间

tablespace bytes name 1024 512    来源:    2025-04-29

查看Oracle表空间的方法

1. 使用DBA_TABLESPACES视图

SELECT tablespace_name, status, contents, logging 
FROM dba_tablespaces;

2. 查看表空间使用情况

SELECT 
    df.tablespace_name "表空间名",
    df.bytes/1024/1024 "总大小(MB)",
    (df.bytes-fs.bytes)/1024/1024 "已使用(MB)",
    fs.bytes/1024/1024 "空闲(MB)",
    round(100*(df.bytes-fs.bytes)/df.bytes) "使用率(%)"
FROM 
    (SELECT tablespace_name, sum(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) df,
    (SELECT tablespace_name, sum(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) fs
WHERE 
    df.tablespace_name = fs.tablespace_name;

3. 查看临时表空间信息

SELECT tablespace_name, file_name, bytes/1024/1024 "大小(MB)"
FROM dba_temp_files;

4. 查看表空间对应的数据文件

SELECT 
    file_name, 
    tablespace_name, 
    bytes/1024/1024 "大小(MB)", 
    autoextensible, 
    maxbytes/1024/1024 "最大可扩展至(MB)"
FROM dba_data_files
ORDER BY tablespace_name;

5. 查看表空间是否为自动扩展

SELECT 
    tablespace_name, 
    file_name, 
    autoextensible, 
    increment_by*(8192/1024/1024) "增量(MB)"
FROM dba_data_files;

6. 查看用户的默认表空间

SELECT username, default_tablespace, temporary_tablespace
FROM dba_users;

7. 使用Oracle Enterprise Manager (OEM)

如果您有访问Oracle Enterprise Manager的权限,可以通过图形界面查看表空间信息: 1. 登录到Oracle Enterprise Manager 2. 导航到"服务器"选项卡 3. 在"存储"部分选择"表空间"

注意事项

  • 执行这些查询通常需要DBA权限或至少SELECT_CATALOG_ROLE权限
  • 对于临时表空间,使用dba_temp_files而不是dba_data_files
  • 要查看更详细的信息,可以查询v$tablespacev$datafile视图