您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關oracle11g如何查詢臨時表空間的使用率和正在使用臨時表空間的用戶的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
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臨時表空間的每個文件的聚合信息,包括當前正在使用的空間量以及空間頭中標識的空閑量。
Column | Datatype | Description |
---|---|---|
TABLESPACE_NAME | VARCHAR2(30) | Name of the temporary tablespace |
FILE_ID | NUMBER | Absolute file number |
BYTES_USED | NUMBER | How many bytes are in use |
BLOCKS_USED | NUMBER | How many blocks are in use |
BYTES_FREE | NUMBER | How many bytes are free |
BLOCKS_FREE | NUMBER | How many blocks are free |
RELATIVE_FNO | NUMBER | The relative file number for the file |
關于V$TEMPSEG_USAGE的官方文檔的解釋:
V$TEMPSEG_USAGE 描述臨時段使用情況。
柱 | 數據類型 | 描述 |
---|---|---|
USERNAME | VARCHAR2(30) | 請求臨時空間的用戶 |
USER | VARCHAR2(30) | 此列已過時并維護以便向后兼容。此列的值始終等于中的值USERNAME 。 |
SESSION_ADDR | RAW(4 | 8) | 會話地址 |
SESSION_NUM | NUMBER | 會話序列號 |
SQLADDR | RAW(4 | 8) | SQL語句的地址 |
SQLHASH | NUMBER | SQL語句的哈希值 |
SQL_ID | VARCHAR2(13) | SQL語句的SQL標識符 |
TABLESPACE | VARCHAR2(31) | 分配空間的表空間 |
CONTENTS | VARCHAR2(9) | 指示表是否TEMPORARY 或PERMANENT |
SEGTYPE | VARCHAR2(9) | 排序類型的類型:
|
SEGFILE# | NUMBER | 初始范圍的文件號 |
SEGBLK# | NUMBER | 初始范圍的塊號 |
EXTENTS | NUMBER | 分配給排序的范圍 |
BLOCKS | NUMBER | 分配給排序的塊中的范圍 |
SEGRFNO# | NUMBER | 初始范圍的相對文件號 |
關于V$TEMP_EXTENT_POOL的官方文檔中的解釋
V$TEMP_EXTENT_POOL顯示緩存并用于實例的臨時空間的狀態。請注意,臨時空間緩存的加載是惰性的,并且實例可以處于休眠狀態。
柱 | 數據類型 | 描述 |
---|---|---|
TABLESPACE_NAME | VARCHAR2(30) | 表空間的名稱 |
FILE_ID | NUMBER | 絕對文件號 |
EXTENTS_CACHED | NUMBER | 已緩存的范圍數 |
EXTENTS_USED | NUMBER | 實際使用的范圍數 |
BLOCKS_CACHED | NUMBER | 緩存的塊數 |
BLOCKS_USED | NUMBER | 使用的塊數 |
BYTES_CACHED | NUMBER | 緩存的字節數 |
BYTES_USED | NUMBER | 使用的字節數 |
RELATIVE_FNO | NUMBER | 相對文件號 |
關于V$TEMPORARY_LOBS官方文檔解釋
V$TEMPORARY_LOBS 顯示臨時LOB。
柱 | 數據類型 | 描述 |
---|---|---|
SID | NUMBER | 會話ID |
CACHE_LOBS | NUMBER | 緩存臨時LOB的數量 |
NOCACHE_LOBS | NUMBER | nocache臨時LOB的數量 |
ABSTRACT_LOBS | NUMBER | 抽象LOB的數量 |
感謝各位的閱讀!關于“oracle11g如何查詢臨時表空間的使用率和正在使用臨時表空間的用戶”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。