oracle 表空间利用率的几种查询方法

--查询表空间使用情况
SELECT Upper(F.TABLESPACE_NAME)         "表空间名",
       D.TOT_GROOTTE_MB                 "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
       || '%'                           "使用比",
       F.TOTAL_BYTES                    "空闲空间(M)",
       F.MAX_BYTES                      "最大块(M)"
FROM   (SELECT TABLESPACE_NAME,
               Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
               Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
        FROM   SYS.DBA_FREE_SPACE
        GROUP  BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
        FROM   SYS.DBA_DATA_FILES DD
        GROUP  BY DD.TABLESPACE_NAME) D
WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER  BY 1

--查询表空间的free space
select tablespace_name, count(*) AS extends,round(sum(bytes) / 1024 / 1024, 2) AS MB,sum(blocks) AS blocks from dba_free_space group BY tablespace_name;

--查询表空间的总容量
select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
--查询表空间使用率
SELECT total.tablespace_name,
       Round(total.MB, 2)           AS Total_MB,
       Round(total.MB - free.MB, 2) AS Used_MB,
       Round(( 1 - free.MB / total.MB ) * 100, 2)
       || '%'                       AS Used_Pct
FROM   (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 AS MB
        FROM   dba_free_space
        GROUP  BY tablespace_name) free,
       (SELECT tablespace_name,
               Sum(bytes) / 1024 / 1024 AS MB
        FROM   dba_data_files
        GROUP  BY tablespace_name) total
WHERE  free.tablespace_name = total.tablespace_name;
时间: 2024-11-03 00:03:39

oracle 表空间利用率的几种查询方法的相关文章

Oracle 表空间利用率及对象大小查询

1. 查看所有表空间大小 SQL> select tablespace_name,sum(bytes)/1024/1024 M from dba_data_files group by tablespace_name; 2. 已经使用的表空间大小 SQL> select tablespace_name,sum(bytes)/1024/1024 M from dba_free_space group by tablespace_name; 3. 所以使用空间可以这样计算 select a.tab

误删除LV后察看表空间利用率失败的解决方法

现象:误删除LV后察看表空间利用率失败,察看ALERT日志,发现如下错误: Errors in file /home/oracle/admin/zhjport/bdump/zhjport1_dbw0_2871436.trc: ORA-01186: file 81 failed verification tests ORA-01157: cannot identify/lock data file 81 - see DBWR trace file ORA-01110: data file 81:

Oracle 表空间查询与操作方法_oracle

一.查询篇 1.查询oracle表空间的使用情况 select b.file_id 文件ID, b.tablespace_name 表空间, b.file_name 物理文件名, b.bytes 总字节数, (b.bytes-sum(nvl(a.bytes,0))) 已使用, sum(nvl(a.bytes,0)) 剩余, sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比 from dba_free_space a,dba_data_files b where a.

Oracle 表空间时点恢复(TSPITR)

表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式.它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复.那它具体的过程和逻辑是怎样的?下文是其具体的描述. 一.什么是表空间时点恢复 Oracle表空间时点恢复有2个需要理解的概念. 恢复粒度   表空间级别,也就是说恢复的粒度是以表空间为单位 时点恢复   时点恢复意味着是一个不完全恢复.也就是说可以把某个或几个表空间恢复到过去的特定时

Oracle 表空间与数据文件

--============================== --Oracle 表空间与数据文件 --============================== /* 一.概念     表空间:是一个或多个数据文件的逻辑集合     表空间逻辑存储对象:永久段-->如表与索引                         临时段-->如临时表数据与排序段                      回滚段-->用于事物回滚或闪回内存的撤销数据     表空间分类:系统表空间(sys

Oracle表空间传输

Oracle表空间传输是8i 新增加的一种快速在数据库间移动数据的一种办法,是把一个数 据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成dmp 文件,这 在有些时候是非常管用的,因为传输表空间移动数据就象复制文件一样快. 1.关于传输表空间有一些规则(10g前): · 源数据库和目标数据库必须运行在相同的硬件平台上. [ Oracle备份与恢复总结] E-Mail / MSN : db.dw.dm@gmail.com [ Oracle备份与恢复总结] E-Mail / MSN :

数据库-oracle表空间修改后导出,然后导入修改好的表空间,导入失败,显示导入的表空间还是不存在!

问题描述 oracle表空间修改后导出,然后导入修改好的表空间,导入失败,显示导入的表空间还是不存在! 我原先的数据库的表空间是XMGL,然后我修改了一张表,将其表空间修改为了 WGP,然后导出,然后通过一台服务器,这台服务器的表空间就是 WGP,然后导入就报错 报错说是 XMGL不存在,问题是我原先导出前已经修改了表空间,导出还是原先的表空间,求解,数据库我也重启了,还是不行,求大神! 解决方案 参考Import: Tablespace does not exist tips 你的表里面有CL

六分钟学会创建Oracle表空间的实现步骤_oracle

经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 复制代码 代码如下: select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space; 2.增加Oracle表空间 先查询数据文件名称.大小和路径的信息,语句如下: 复制代码 代码如下: select tablespace_name,file_id,bytes,file_name fr

Oracle表空间名称是区分大小写

今天在通过imp导入数据时,日志提示TS_W5_D表空间不存在.感觉很奇怪,导入用户的表空间是ts_w5_d,并且这个表空间也存在啊. 为什么还是提报表空间不存在呢? 并且,当时试图通过>drop tablespace ts_w5_d 时,提示ts_w5_d 表空间不存在,明明有啊,怎么说不存在? 排查了半天,最终得知,oracle表空间名称分大小写的:TS_W5_D.ts_w5_d 是两个表不同的表空间. Oracle数据库内部是对大小写不敏感的,默认全是大写.如果需要小写需要使用双引号强制(