转载:http://www.cnblogs.com/xwdreamer/p/3511047.html
参考文献
文献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代码格式太乱了,不好看,找到一个在线格式化工具。
--查询表空间使用情况 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;
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) b WHERE a.tablespace_name = b.tablespace_name
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;
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;
相关推荐
通过上述SQL语句,我们可以全面地了解Oracle数据库表空间的使用情况,包括表空间大小、数据文件细节、回滚段状态、控制文件和日志文件信息、自由空间情况、对象统计以及数据库版本和日志模式等。这对于日常数据库...
在Oracle数据库管理系统中,查询表以及统计数据库的使用情况是一项关键任务,有助于管理员监控资源使用状况、优化性能并规划存储。本文将深入探讨如何查询Oracle表空间的使用情况,以及这个过程中的重要知识点。 ...
1. **监控和优化**:通过定期运行此类查询,可以及时发现表空间使用率过高的情况,从而采取措施释放空间或者扩展表空间,避免因空间不足导致的应用故障。 2. **性能调优**:了解表空间的使用情况有助于优化数据库的...
### 四、查询表空间使用率 #### SQL脚本解读: ```sql 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) ...
23. **AVG_SPACE**: 平均每个块的空间使用量。 24. **CHAIN_CNT**: 链接计数。 25. **AVG_ROW_LEN**: 平均每行长度。 26. **AVG_SPACE_FREE_LIST_BLOCKS**: 每个自由列表的平均空闲空间。 27. **NUM_FREE_LIST_...
2. **计算碎片率**:利用`(sum(free)*100/sum(bytes))`计算表空间的碎片率,其中`sum(free)`表示总的空闲空间,`sum(bytes)`表示总的分配空间。 3. **结果解读**:当计算得到的百分比小于30时,表明该表空间存在较高...
- `Round((Ta.Define_Size - Tb.Free_Size) / Ta.Define_Size, 4) * 100`计算表空间使用率百分比。 此查询首先从`DBA_DATA_FILES`视图获取表空间的定义大小,再从`DBA_FREE_SPACE`视图获取剩余空间大小,最后进行...
为了优化空间利用,建议定期执行数据库维护任务,如重建索引以消除索引碎片,使用DBMS_REDEFINITION进行在线表重定义以合并碎片,以及使用DBMS_SPACE.ALLOCATE_UPDATE统计表空间的使用情况。对于大型数据段,考虑...
#### SQL查询表空间使用情况 以下是一些常用的SQL查询语句,用于获取表空间的总大小、已使用空间、可用空间以及使用率等信息。 ### 查询表空间使用情况 #### 示例一:基本表空间统计信息 ```sql SELECT a....
通过执行特定的SQL查询与系统命令,可以获取到关于表空间使用率、数据文件状态以及潜在增长需求等方面的信息。 #### 二、常用巡检指令详解 ##### 1. 查看文件系统磁盘空间:`df -h` 这条命令用于查看当前系统的...
本篇文章将深入探讨Oracle数据库中的大型表查询优化策略,并结合工具的使用来提高查询效率。 首先,我们需要理解大型表查询优化的基本原则。这包括正确使用索引、合理设计表结构、避免全表扫描以及有效利用分区技术...
首先,作者提到Oracle数据库的users表空间使用率达到了99%,由于表空间使用的是bigfile类型,无法添加新的文件。因此,管理员采取了打开自动扩展参数,并设置每次扩展20G的策略。然而,这种方式有潜在风险,如果SQL...
3. **计算利用率**:基于文件的实际使用情况和潜在扩展能力来计算利用率。 脚本示例: ```sql SET PAGESIZE 20 COLUMN ID FORMAT A42 COLUMN Tablespace FORMAT A10 SELECT b.file_id ID, b.tablespace_name ...
进一步查询`DBA_SEGMENTS`,可以发现`WRI$_ADV_OBJECTS`对象是主要的占用者,表明优化器统计信息顾问在SYSAUX表空间中创建了大量的数据。 **原因解释** 这个问题的主要原因是Oracle 12.2引入的一个新特性——优化...
1. **监控表空间使用情况**:定期检查表空间使用率,确保不会超过90%的使用阈值。 2. **扩展策略**:对于接近满容量的表空间,需要考虑增加数据文件或者扩大现有数据文件的大小。 3. **临时表空间管理**:从Oracle ...
在Oracle数据库管理中,了解和优化IO(输入输出)使用情况是至关重要的,因为它直接影响到系统的性能和响应时间。标题提到的"oracle IO 使用情况"指的是监控和分析Oracle数据库在执行SQL语句时对磁盘I/O资源的消耗。...
在Oracle数据库中,我们可以通过SQL查询来统计表空间中的空表。以下是一个PL/SQL程序示例,它遍历所有表并检查它们是否为空: ```sql DECLARE -- 定义变量 v_table tabs.table_name%TYPE; -- 存储表名 v_sql ...
changefilter.sql oracle的连接数查看和连接用户的查看.sql Sun30新建oracle用户.sql ...表空间使用查询.sql 表空间剩余空间查看.sql 表空间回收.sql 过滤表清除sql生成.sql 进程使用回滚段查询.sql 锁表查询.sql
2. **定期分析表统计信息**:使用`ANALYZE TABLE`命令定期更新表的统计信息,确保优化器能够基于准确的数据作出最佳的执行计划决策。 3. **监控性能变化**:实施优化后,需要持续监控数据库性能的变化,以确保所采取...