查詢過去一段時間內某條sql使用的臨時表空間大小
查詢過去一段時間內使用的temp表空間大小需要查詢V$ACTIVE_SESSION_HISTORY這個檢視,SQL語句是:
select SQL_ID,
SQL_EXEC_START,
PROGRAM,
TEMP_SPACE_ALLOCATED/1024/1024/1024 from V$ACTIVE_SESSION_HISTORY where sql_id='SQL語句的sql—id' and rownum<10 order by 4;
關於v$active_session_history的解釋,大家可以根據自己的需求新增列。
V$ACTIVE_SESSION_HISTORY
顯示資料庫中的取樣會話活動。
它包含每秒執行一次的活動資料庫會話的快照。
如果資料庫會話在CPU上或正在等待不屬於
Idle
wait類
的事件,則認為該資料庫會話是活動的
。
V$EVENT_NAME
有關等待類的更多資訊,
請參閱
檢視。
此檢視為每個樣本的每個活動會話包含一行,並首先返回最新的會話樣本行。
描述活動會話歷史記錄中的會話的大多數列都存在於
V$SESSION
檢視中。
柱 | 資料型別 | 描述 |
---|---|---|
SAMPLE_ID
|
NUMBER
|
樣本的ID |
SAMPLE_TIME
|
TIMESTAMP(3)
|
採集樣品的時間 |
IS_AWR_SAMPLE
|
VARCHAR2(1)
|
指示此樣本是否已重新整理或將重新整理到自動工作負載儲存庫(
DBA_HIST_ACTIVE_SESS_HISTORY
)(
Y
)或不是(
N
)
|
SESSION_ID
|
NUMBER
|
會話標識;
對映到
V$SESSION.SID
|
SESSION_SERIAL#
|
NUMBER
|
會話序列號(用於唯一標識會話的物件);
對映到
V$SESSION.SERIAL#
|
SESSION_TYPE
|
VARCHAR2(10)
|
會話型別:
|
FLAGS
|
NUMBER
|
保留供將來使用 |
USER_ID
|
NUMBER
|
Oracle使用者識別符號;
對映到
V$SESSION.USER#
|
SQL_ID
|
VARCHAR2(13)
|
在取樣時會話正在執行的SQL語句的SQL識別符號 |
IS_SQLID_CURRENT
|
VARCHAR2(1)
|
指示
SQL_ID
列中
的SQL識別符號
是否正在執行(
Y
)或不
執行
(
N
)
|
SQL_CHILD_NUMBER
|
NUMBER
|
在取樣時會話正在執行的SQL語句的子編號 |
SQL_OPCODE
|
NUMBER
|
指示SQL語句的操作階段;
對映到
V$SESSION.COMMAND
另請參閱: 以獲取有關解釋此列的資訊 |
SQL_OPNAME
|
VARCHAR2(64)
|
SQL命令名稱 |
FORCE_MATCHING_SIGNATURE
|
NUMBER
|
CURSOR_SHARING
引數設定
為時使用的簽名
FORCE
|
TOP_LEVEL_SQL_ID
|
VARCHAR2(13)
|
頂級SQL語句的SQL識別符號 |
TOP_LEVEL_SQL_OPCODE
|
NUMBER
|
指示頂級SQL語句所處的操作階段 |
SQL_PLAN_HASH_VALUE
|
NUMBER
|
遊標的SQL計劃的數字表示。
此資訊可能不適用於所有會話樣本。
V$SESSION
不包含此資訊。
|
SQL_PLAN_LINE_ID
|
NUMBER
|
SQL計劃行ID |
SQL_PLAN_OPERATION
|
VARCHAR2(30)
|
計劃操作名稱 |
SQL_PLAN_OPTIONS
|
VARCHAR2(30)
|
計劃操作選項 |
SQL_EXEC_ID
|
NUMBER
|
SQL執行識別符號 |
SQL_EXEC_START
|
DATE
|
SQL執行開始的時間 |
PLSQL_ENTRY_OBJECT_ID
|
NUMBER
|
堆疊中最頂層PL / SQL子程式的物件ID; 如果堆疊上沒有PL / SQL子程式,則為NULL。 對映到DBA_OBJECTS.OBJECT_ID。 |
PLSQL_ENTRY_SUBPROGRAM_ID
|
NUMBER
|
堆疊上最頂層PL / SQL子程式的子程式ID。 對映到DBA_OBJECTS.DATA_OBJECT_ID。 |
PLSQL_OBJECT_ID
|
NUMBER
|
當前正在執行的PL / SQL子程式的物件ID。 對映到DBA_OBJECTS.OBJECT_ID。 |
PLSQL_SUBPROGRAM_ID
|
NUMBER
|
當前正在執行的PL / SQL物件的子程式ID; 執行SQL時為NULL。 對映到DBA_OBJECTS.DATA_OBJECT_ID。 |
QC_INSTANCE_ID
|
NUMBER
|
查詢協調器例項ID。
僅當取樣會話是並行查詢從站時,此資訊才可用。
對於所有其他會話,值為
。
|
QC_SESSION_ID
|
NUMBER
|
查詢協調器會話ID。
僅當取樣會話是並行查詢從站時,此資訊才可用。
對於所有其他會話,值為
。
|
QC_SESSION_SERIAL#
|
NUMBER
|
查詢協調器會話序列號。
僅當取樣會話是並行查詢從站時,此資訊才可用。
對於所有其他會話,值為
。
|
PX_FLAGS
|
NUMBER
|
保留供內部使用 |
EVENT
|
VARCHAR2(64)
|
如果
SESSION_STATE
=
WAITING
,則表示會話在取樣時等待的事件。
如果
另請參閱: |
EVENT_ID
|
NUMBER
|
會話正在等待或會話最後等待的資源或事件的識別符號。
解釋類似於
EVENT
專欄。
|
EVENT#
|
NUMBER
|
會話正在等待或會話上次等待的資源或事件的編號。
解釋類似於
EVENT
專欄。
|
SEQ#
|
NUMBER
|
唯一標識等待的序列號(每個等待增加) |
P1TEXT
|
VARCHAR2(64)
|
第一個附加引數的文字 |
P1
|
NUMBER
|
第一個附加引數 |
P2TEXT
|
VARCHAR2(64)
|
第二個附加引數的文字 |
P2
|
NUMBER
|
第二個附加引數 |
P3TEXT
|
VARCHAR2(64)
|
第三個附加引數的文字 |
P3
|
NUMBER
|
第三個附加引數 |
WAIT_CLASS
|
VARCHAR2(64)
|
等待會話在取樣時等待的事件的類名。
解釋類似於
EVENT
專欄。
地圖到
V$SESSION.WAIT_CLASS
。
|
WAIT_CLASS_ID
|
NUMBER
|
等待會話在取樣時等待的事件的類識別符號。
解釋類似於
EVENT
專欄。
地圖到
V$SESSION.WAIT_CLASS_ID
。
|
WAIT_TIME
|
NUMBER
|
會話上次等待的事件的總等待時間,如果會話在CPU上進行取樣時;
如果會話在抽樣時等待
注意:
是否
|
SESSION_STATE
|
VARCHAR2(7)
|
會話狀態:
|
TIME_WAITED
|
NUMBER
|
如果
SESSION_STATE
=
WAITING
,那麼會話實際花費在等待該事件的時間(以微秒為單位)。
此列設定為取樣時正在進行的等待。
如果等待事件持續超過一秒並且在多個會話樣本行中等待,則等待該等待事件所花費的實際時間將填充在這些會話樣本行的最後一行中。 在任何給定時間,此資訊將不適用於最新的會話樣本。 |
BLOCKING_SESSION_STATUS
|
VARCHAR2(11)
|
阻止會話的狀態:
|
BLOCKING_SESSION
|
NUMBER
|
阻塞會話的會話識別符號。
僅當阻止程式位於同一例項且會話正在等待佇列或“緩衝區忙”等待時才填充。
地圖到
V$SESSION.BLOCKING_SESSION
。
|
BLOCKING_SESSION_SERIAL#
|
NUMBER
|
阻止會話的序列號 |
BLOCKING_INST_ID
|
NUMBER
|
顯示的阻止程式的例項編號
BLOCKING_SESSION
|
BLOCKING_HANGCHAIN_INFO
|
VARCHAR2(1)
|
指示有關的資訊
BLOCKING_SESSION
是來自掛起鏈(
Y
)還是不來自(
N
)
|
CURRENT_OBJ#
|
NUMBER
|
會話引用的物件的物件ID。
僅當會話正在等待應用程式,群集,併發和使用者I / O等待事件時,此資訊才可用。
地圖到
V$SESSION.ROW_WAIT_OBJ#
。
|
CURRENT_FILE#
|
NUMBER
|
包含會話引用的塊的檔案的檔案號。
僅當會話正在等待群集,併發和使用者I / O等待事件時,此資訊才可用。
地圖到
V$SESSION.ROW_WAIT_FILE#
。
|
CURRENT_BLOCK#
|
NUMBER
|
會話引用的塊的ID。
僅當會話正在等待群集,併發和使用者I / O等待事件時,此資訊才可用。
地圖到
V$SESSION.ROW_WAIT_BLOCK#
。
|
CURRENT_ROW#
|
NUMBER
|
會話引用的行識別符號。
僅當會話正在等待群集,併發和使用者I / O等待事件時,此資訊才可用。
地圖到
V$SESSION.ROW_WAIT_ROW#
。
|
TOP_LEVEL_CALL#
|
NUMBER
|
Oracle頂級電話號碼 |
TOP_LEVEL_CALL_NAME
|
VARCHAR2(64)
|
Oracle頂級呼叫名稱 |
CONSUMER_GROUP_ID
|
NUMBER
|
消費者組ID |
XID
|
RAW(8)
|
會話在取樣時正在處理的事務ID。
V$SESSION
不包含此資訊。
|
REMOTE_INSTANCE#
|
NUMBER
|
遠端例項識別符號,用於為此會話等待的塊提供服務。 此資訊僅在會話等待群集事件時可用。 |
TIME_MODEL
|
NUMBER
|
時間模型資訊 |
IN_CONNECTION_MGMT
|
VARCHAR2(1)
|
指示會話在取樣時是否正在進行連線管理(
Y
)或不是(
N
)
|
IN_PARSE
|
VARCHAR2(1)
|
指示會話在取樣時是否正在解析(
Y
)或不是(
N
)
|
IN_HARD_PARSE
|
VARCHAR2(1)
|
指示在sampling(
Y
)或不是(
N
)
時會話是否難以解析
|
IN_SQL_EXECUTION
|
VARCHAR2(1)
|
指示會話是否在sampling(
Y
)或不
執行時執行SQL語句
(
N
)
|
IN_PLSQL_EXECUTION
|
VARCHAR2(1)
|
指示會話是否在sampling(
Y
)或不
執行時執行PL / SQL
(
N
)
|
IN_PLSQL_RPC
|
VARCHAR2(1)
|
指示會話是否在sampling(
Y
)或不
執行時執行入站PL / SQL RPC呼叫
(
N
)
|
IN_PLSQL_COMPILATION
|
VARCHAR2(1)
|
指示會話是在編譯時是否正在編譯PL / SQL(
Y
)或不是(
N
)
|
IN_JAVA_EXECUTION
|
VARCHAR2(1)
|
指示會話是否在sampling(
Y
)或不
執行時執行Java
(
N
)
|
IN_BIND
|
VARCHAR2(1)
|
指示會話是否在sampling(
Y
)或不
執行時執行繫結操作
(
N
)
|
IN_CURSOR_CLOSE
|
VARCHAR2(1)
|
指示會話是否在sampling(
Y
)或不是(
N
)
時關閉遊標
|
IN_SEQUENCE_LOAD
|
VARCHAR2(1)
|
指示會話是按順序載入(按順序載入程式碼)(
Y
)還是不
載入
(
N
)
|
CAPTURE_OVERHEAD
|
VARCHAR2(1)
|
指示會話是否正在執行捕獲程式碼(
Y
)或不
執行
(
N
)
|
REPLAY_OVERHEAD
|
VARCHAR2(1)
|
指示會話是否正在執行重放程式碼(
Y
)或不
執行
(
N
)
|
IS_CAPTURED
|
VARCHAR2(1)
|
指示是否正在捕獲會話(
Y
)或不
捕獲
(
N
)
|
IS_REPLAYED
|
VARCHAR2(1)
|
指示會話是否正在重播(
Y
)或不
重播
(
N
)
|
SERVICE_HASH
|
NUMBER
|
標識服務的雜湊值;
對映到
V$ACTIVE_SERVICES.NAME_HASH
|
PROGRAM
|
VARCHAR2(48)
|
作業系統程式的名稱 |
MODULE
|
VARCHAR2(48)
|
取樣時執行模組的名稱,由
DBMS_APPLICATION_INFO.SET_MODULE
過程
設定
|
ACTION
|
VARCHAR2(32)
|
取樣時執行模組的名稱,由
DBMS_APPLICATION_INFO.SET_ACTION
過程
設定
|
CLIENT_ID
|
VARCHAR2(64)
|
會話的客戶識別符號;
對映到
V$SESSION.CLIENT_IDENTIFIER
|
MACHINE
|
VARCHAR2(64)
|
客戶端的作業系統機器名稱 |
PORT
|
NUMBER
|
客戶端埠號 |
ECID
|
VARCHAR2(64)
|
執行上下文識別符號(由Application Server傳送) |
DBREPLAY_FILE_ID
|
NUMBER
|
如果正在捕獲或重放會話,那麼
DBREPLAY_FILE_ID
是工作負載捕獲或工作負載重放的檔案ID;
否則它是NULL。
|
DBREPLAY_CALL_COUNTER
|
NUMBER
|
如果正在捕獲或重放會話,則是正在捕獲或重放
DBREPLAY_CALL_COUNTER
的使用者呼叫的呼叫計數器;
否則它是NULL。
|
TM_DELTA_TIME
|
NUMBER
|
在其時間間隔(以微秒計)
TM_DELTA_CPU_TIME
和
TM_DELTA_DB_TIME
被累積
|
TM_DELTA_CPU_TIME
|
NUMBER
|
此會話在過去
TM_DELTA_TIME
幾微秒內
花在CPU上的時間
|
TM_DELTA_DB_TIME
|
NUMBER
|
此會話在過去
TM_DELTA_TIME
幾微秒內在
資料庫呼叫中花費的時間
|
DELTA_TIME
|
NUMBER
|
自上次取樣或建立會話以來的時間間隔(以微秒為單位),累計接下來的五個統計資訊 |
DELTA_READ_IO_REQUESTS
|
NUMBER
|
此會話在過去
DELTA_TIME
幾微秒內
發出的讀取I / O請求數
|
DELTA_WRITE_IO_REQUESTS
|
NUMBER
|
此會話在過去
DELTA_TIME
幾微秒內
發出的寫入I / O請求數
|
DELTA_READ_IO_BYTES
|
NUMBER
|
此會話在過去
DELTA_TIME
幾微秒內
讀取的I / O位元組數
|
DELTA_WRITE_IO_BYTES
|
NUMBER
|
此會話在過去
DELTA_TIME
幾微秒內
寫入的I / O位元組數
|
DELTA_INTERCONNECT_IO_BYTES
|
NUMBER
|
在過去
DELTA_TIME
幾微秒
內透過I / O互連傳送的I / O位元組數
|
PGA_ALLOCATED
|
NUMBER
|
此示例拍攝時此會話佔用的PGA記憶體量(以位元組為單位) |
TEMP_SPACE_ALLOCATED
|
NUMBER
|
拍攝此樣本時此會話消耗的TEMP記憶體量(以位元組為單位) |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547066/viewspace-2286075/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分享一個查詢某個使用者過去一段時間內執行的SQL語句。SQL
- 臨時表空間和回滾表空間使用率查詢
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- 臨時表空間被佔滿的原因查詢
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- oracle 臨時表空間的增刪改查Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- linux查詢某段時間修改的檔案的總大小Linux
- 臨時表空間使用率過高的解決辦法
- oracle臨時表空間相關Oracle
- 4.2.1.8規劃臨時表空間
- 刪除臨時表空間組
- MySQL InnoDB臨時表空間配置MySql
- 查詢某表最近5天內最後一次dml的時間
- 消除臨時表空間暴漲的方法
- 2.5.7 建立預設臨時表空間
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- 查詢表空間使用情況
- 表空間使用量查詢
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- 達夢資料庫表空間等空間大小查詢方法總結資料庫
- SQLServer如何釋放tempdb臨時表空間SQLServer
- 查詢時若時間為空,開始時間取今天的零點,結束時間取當前時間
- oracle建立使用者,表空間,臨時表空間,分配許可權步驟詳解Oracle
- oracle表空間使用率查詢Oracle
- MYSQL造資料佔用臨時表空間MySql
- 查詢表空間使用情況的指令碼指令碼
- dbms_lob儲存過程導致臨時表空間100%儲存過程
- 當使用者無限制使用表空間配額且表空間有足夠空間時出現超出表空間的空間限額
- 檢視oracle臨時表空間佔用率的檢視Oracle
- 臨時表空間ORA-1652問題解決
- oracle查詢sql執行耗時、執行時間、sql_idOracleSQL
- 有點意思!釘釘檢視報表,查詢條件預設當天時間,發現過了未來時間
- JN專案-時間查詢條件驗證
- SQL Server檢視所有表大小,所佔空間SQLServer
- JS實現檢查給定時間範圍是否在每天的某個時間段內JS
- MySQL查詢時間段MySql