共计 2661 个字符,预计需要花费 7 分钟才能阅读完成。
行业资讯
数据库
关系型数据库
oracle11g 如何查询临时表空间的使用率和正在使用临时表空间的用户
这篇文章给大家分享的是有关 oracle11g 如何查询临时表空间的使用率和正在使用临时表空间的用户的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。
1. 查询临时表空间的使用率:
select c.tablespace_name,
to_char(c.bytes/1024/1024/1024, 99,999.999) total_gb,
to_char((c.bytes-d.bytes_used)/1024/1024/1024, 99,999.999 ) free_gb,
to_char(d.bytes_used/1024/1024/1024, 99,999.999) use_gb,
to_char(d.bytes_used*100/c.bytes, 99.99) || % use
from (select tablespace_name,sum(bytes) bytes
from dba_temp_files GROUP by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool GROUP by tablespace_name) d
where c.tablespace_name = d.tablespace_name;
2. 查询那些用户在使用
select a.username,
a.sql_id,
a.SEGTYPE,
b.BYTES_USED/1024/1024/1024||‘G’,
b.BYTES_FREE/1024/1024/1024 from V$TEMPSEG_USAGE a join V$TEMP_SPACE_HEADER b on a.TABLESPACE=b.tablespace_name;
解释 username 正在执行 sql 的用户名
sql_id 正在执行的 sql 的的 sql_id
segtype 正在执行的 SQL 语句做的是什么操作
BYTES_USED 正在执行 sql 语句使用的临时表空间的大小
BYTES_FREE 剩余多少临时表空间
大家可以看到这个临时表空间的有 6 个数据文件,查询的结果显示按照每个临时的数据文件使用了多少,还剩余多少,又又有一个问题是第一用户 DBSNMP 用户已经把临时表空间占满了那么第二个用户还能使用这个六个数据文件的临时表空间么,个人理解是六个数据文件中有第一个用户在使用,也有第二个用户在使用。
查询实例中时候是否有大字段在使用临时表空间:
select * from V$TEMPORARY_LOBS;
关于数据字典 V$TEMP_SPACE_HEADER 官方文档的解释:
V$TEMP_SPACE_HEADER 显示每个 LOCALLY MANAGED 临时表空间的每个文件的聚合信息,包括当前正在使用的空间量以及空间头中标识的空闲量。
ColumnDatatypeDescriptionTABLESPACE_NAMEVARCHAR2(30)Name of the temporary tablespaceFILE_IDNUMBERAbsolute file numberBYTES_USEDNUMBERHow many bytes are in useBLOCKS_USEDNUMBERHow many blocks are in useBYTES_FREENUMBERHow many bytes are freeBLOCKS_FREENUMBERHow many blocks are freeRELATIVE_FNONUMBERThe relative file number for the file
关于 V$TEMPSEG_USAGE 的官方文档的解释:
V$TEMPSEG_USAGE 描述临时段使用情况。
柱数据类型描述 USERNAMEVARCHAR2(30) 请求临时空间的用户 USERVARCHAR2(30) 此列已过时并维护以便向后兼容。此列的值始终等于中的值 USERNAME。SESSION_ADDRRAW(4 | 8) 会话地址 SESSION_NUMNUMBER 会话序列号 SQLADDRRAW(4 | 8)SQL 语句的地址 SQLHASHNUMBERSQL 语句的哈希值 SQL_IDVARCHAR2(13)SQL 语句的 SQL 标识符 TABLESPACEVARCHAR2(31) 分配空间的表空间 CONTENTSVARCHAR2(9) 指示表是否 TEMPORARY 或 PERMANENTSEGTYPEVARCHAR2(9) 排序类型的类型:
SORT
HASH
DATA
INDEX
LOB_DATA
LOB_INDEX
SEGFILE#NUMBER 初始范围的文件号 SEGBLK#NUMBER 初始范围的块号 EXTENTSNUMBER 分配给排序的范围 BLOCKSNUMBER 分配给排序的块中的范围 SEGRFNO#NUMBER 初始范围的相对文件号
关于 V$TEMP_EXTENT_POOL 的官方文档中的解释
V$TEMP_EXTENT_POOL 显示缓存并用于实例的临时空间的状态。请注意,临时空间缓存的加载是惰性的,并且实例可以处于休眠状态。
柱数据类型描述 TABLESPACE_NAMEVARCHAR2(30) 表空间的名称 FILE_IDNUMBER 绝对文件号 EXTENTS_CACHEDNUMBER 已缓存的范围数 EXTENTS_USEDNUMBER 实际使用的范围数 BLOCKS_CACHEDNUMBER 缓存的块数 BLOCKS_USEDNUMBER 使用的块数 BYTES_CACHEDNUMBER 缓存的字节数 BYTES_USEDNUMBER 使用的字节数 RELATIVE_FNONUMBER 相对文件号
关于 V$TEMPORARY_LOBS 官方文档解释
V$TEMPORARY_LOBS 显示临时 LOB。
柱数据类型描述 SIDNUMBER 会话 IDCACHE_LOBSNUMBER 缓存临时 LOB 的数量 NOCACHE_LOBSNUMBERnocache 临时 LOB 的数量 ABSTRACT_LOBSNUMBER 抽象 LOB 的数量
感谢各位的阅读!关于“oracle11g 如何查询临时表空间的使用率和正在使用临时表空间的用户”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!