/*
--查看表空间物理文件名、表空间名称、总大小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值;