Oracle 查询表空间大小

本文提供了一个Oracle数据库中表空间监控的SQL查询脚本,通过该脚本可以获取表空间的物理文件名、名称、总大小、已使用及剩余大小、是否自动增长以及利用率等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

/*
--查看表空间物理文件名、表空间名称、总大小M 、已使用大小M 、剩余大小M 、是否自动增城、利用率
--正式环境数据库,表空间自动增长到最大空间(最大空间根据实际情况设置)
--未达最大空间,利用率达100%会自动增加表空间
--如果存放表空间的磁盘满了,表空间没增长到最大空间,表空间不能继续增长,应及时清理磁盘空间
--如果磁盘空间足够,表空间不是自动增长,当利用率达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为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。

注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数进行类型转换。

例如:nvl (a.bytes, 0) 如果a.bytes为空,则nvl返回0;反则返回a.bytes值;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值