oracle查询表空间使用率
时间: 2024-02-03 07:01:07 浏览: 24
Oracle查询表空间使用率可以通过以下SQL语句来实现:
```sql
SELECT tablespace_name,
ROUND(SUM(bytes) / 1024 / 1024 / 1024, 2) AS total_size_gb,
ROUND(SUM(bytes - NVL(free.bytes, 0)) / 1024 / 1024 / 1024, 2) AS used_size_gb,
ROUND(NVL(free.bytes, 0) / 1024 / 1024 / 1024, 2) AS free_size_gb,
ROUND((1 - NVL(free.bytes, 0) / SUM(bytes)) * 100, 2) AS used_percent
FROM dba_data_files data
JOIN (SELECT tablespace_name,
file_id,
SUM(bytes) AS bytes
FROM dba_free_space
GROUP BY tablespace_name, file_id) free
ON data.tablespace_name = free.tablespace_name
AND data.file_id = free.file_id
GROUP BY tablespace_name, NVL(free.bytes, 0), SUM(bytes);
```
该 SQL 语句通过查询 dba_data_files 和 dba_free_space 视图,计算出每个表空间的总共大小、已用大小、剩余大小和使用率,并将结果按表空间名称进行分组。通过执行以上 SQL 语句,可以获取到数据库中每个表空间的使用情况,从而进行空间管理和性能优化。