oracle表空间查询sql
来源:互联网 发布:三坐标测量软件 编辑:程序博客网 时间:2024/05/21 15:41
该文章转载自作者:xwdreamer出处:http://www.cnblogs.com/xwdreamer欢迎任何形式的转载,但请务必注明出处。
参考文献
文献1:http://blog.itpub.net/24104518/viewspace-730682,字符有格式,需要清理一下
文献2:http://www.cnblogs.com/fengyun627/archive/2009/07/27/1532551.html
文献3:http://blog.csdn.net/hproc/article/details/7372265
sql语句格式化:http://web.chacuo.net/formatsql
背景
今天发现有一张采样表从1月5号开始不记录数据了,所以想查看一下表空间使用率,在网上零零散散找了很多资料,现在记录如下,也不知道哪一个最准确。还有一个就是网上拷贝的sql代码格式太乱了,不好看,找到一个在线格式化工具。
参考1
--查询表空间使用情况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) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY 1--查询表空间的free spaceselect 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_PctFROM (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) totalWHERE free.tablespace_name = total.tablespace_name;
上述语句查询结果如下图所示:
参考2:
SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", ( total - free ) "表空间使用大小", Round(( total - free ) / total, 4) * 100 "使用率 %"FROM (SELECT tablespace_name, Sum(bytes) free FROM DBA_FREE_SPACE GROUP BY tablespace_name) a, (SELECT tablespace_name, Sum(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name) bWHERE a.tablespace_name = b.tablespace_name
查询结果
参考3
SELECT TABLESPACE_NAME "表空间", To_char(Round(BYTES / 1024, 2), '99990.00') || '' "实有", To_char(Round(FREE / 1024, 2), '99990.00') || 'G' "现有", To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00') || 'G' "使用", To_char(Round(10000 * USED / BYTES) / 100, '99990.00') || '%' "比例"FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME, Floor(A.BYTES / ( 1024 * 1024 )) BYTES, Floor(B.FREE / ( 1024 * 1024 )) FREE, Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A, (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) FREE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)--WHERE TABLESPACE_NAME LIKE 'CDR%' --这一句用于指定表空间名称ORDER BY Floor(10000 * USED / BYTES) DESC;
查询结果
select tablespace_name, max_gb, used_gb, round(100 * used_gb / max_gb) pct_used from (select a.tablespace_name tablespace_name, round((a.bytes_alloc - nvl(b.bytes_free, 0)) / power(2, 30), 2) used_gb, round(a.maxbytes / power(2, 30), 2) max_gb from (select f.tablespace_name, sum(f.bytes) bytes_alloc, sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes from dba_data_files f group by tablespace_name) a, (select f.tablespace_name, sum(f.bytes) bytes_free from dba_free_space f group by tablespace_name) b where a.tablespace_name = b.tablespace_name(+) union all select h.tablespace_name tablespace_name, round(sum(nvl(p.bytes_used, 0)) / power(2, 30), 2) used_gb, round(sum(decode(f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) / power(2, 30), 2) max_gb from v$temp_space_header h, v$temp_extent_pool p, dba_temp_files f where p.file_id(+) = h.file_id and p.tablespace_name(+) = h.tablespace_name and f.file_id = h.file_id and f.tablespace_name = h.tablespace_name group by h.tablespace_name)order by 4;
0 0
- oracle 查询表空间SQL
- oracle表空间查询sql
- Oracle 查询表空间使用情况SQL
- Oracle 查询数据库表空间sql语句
- 查询表空间SQL for oracle
- Oracle 数据库查询表空间sql
- Oracle 表空间查询相关sql
- oracle表空间查询
- 查询oracle表空间
- oracle表空间查询
- oracle 表空间 查询
- 查询Oracle表空间
- Oracle表空间查询
- oracle表空间查询
- ORACLE表空间查询
- oracle表空间查询
- Oracle查询表空间
- oracle表空间查询
- iOS8 新特性
- 南大软院大神养成计划——11月18、19日
- 10017---JavaWeb基础--JSTL
- openfire源码分析---5
- 连接协议
- oracle表空间查询sql
- 小马哥---高仿红米note 主板型号W9-MP-V 1.2字库损坏 软件修复实例
- 看ted《为啥减肥慢》
- tlProPlayer for windows
- linux 下mysql 5.7.9tar 包安装
- 如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。
- ASP.NET-MVC4-03-MVCControllerString
- 云计算
- 文件和目录之stat族函数<stat | fstat | lstat | fstatat>——APUE学习笔记(2)