[Oracle工程师手记]如何查询表空间的使用率
作为DBA的日常工作之一,很有必要随时了解数据库的各个表空间的使用状况。
可以用下面的查询:
SELECT /* + RULE */
dtfs.tablespace_name "Tablespace",
dtfs.bytes / (1024 * 1024) "Size (MB)",
SUM(frspc.bytes) / (1024 * 1024) "Free (MB)",
Nvl(Round(SUM(frspc.bytes) * 100 / dtfs.bytes),1) "% Free",
Round((dtfs.bytes - SUM(frspc.bytes)) * 100 / dtfs.bytes) "% Used"
FROM dba_free_space frspc,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) dtfs
WHERE frspc.tablespace_name (+) = dtfs.tablespace_name
GROUP BY dtfs.tablespace_name,dtfs.bytes
Order by 4;
得到的结果的例子:
Tablespace Size (MB) Free (MB) % Free % Used ------------------------------ ---------- ---------- ---------- ---------- SYSTEM 920 5.1875 1 99 SYSAUX 990 54.9375 6 94 USERS 5 2.3125 46 54 UNDOTBS1 295 259.6875 88 12 SQL>