/*
--查看表空间物理文件名、表空间名称、总大小M 、已使用大小M 、剩余大小M 、是否自动增城、利用率
--正式环境数据库,表空间自动增长到最大空间(最大空间根据实际情况设置)
--未达最大空间,利用率达100%会自动增加表空间
--如果存放表空间的磁盘满了,表空间没增长到最大空间,表空间不能继续增长,应及时清理磁盘空间
--如果磁盘空间足够,表空间不是自动增长,当利用率达90%以上,应及时清理表空间
--如果存放表空间的磁盘满了,表空间没增长到最大空间,表空间不能继续增长,应及时清理磁盘空间
--如果磁盘空间足够,表空间不是自动增长,当利用率达90%以上,应及时清理表空间
*/
select
b.file_name file_name, --物理文件名
b.tablespace_name tab_name, --表空间名称
b.bytes/ 1024 /1024 tab_space_M, --总大小M
(b.bytes- sum (nvl (a.bytes, 0)))/ 1024 /1024 used_space_M, --已使用大小M
sum (nvl (a.bytes, 0))/ 1024 /1024 freespace_M, --剩余表空间大小M
b.autoextensible, --是否自动增长
substr((b.bytes- sum (nvl (a.bytes, 0)))/(b.bytes)* 100 ,1 , 5)
use_ratio --利用率
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id and b.tablespace_name like 'FGMAIN%'
group by b.tablespace_name,b.file_name,b.bytes,b.autoextensible
order by used_space_M desc
nvl 是 Oracle PL/SQL中的一个函数。
格式为:NVL( string1, replace_with)
注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。
例如:nvl (a.bytes, 0)
如果a.bytes为空,则nvl返回0;反则返回a.bytes值;