溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何查詢過去一段時間內某條sql使用的臨時表空間大小

發(fā)布時間:2021-11-10 09:12:18 來源:億速云 閱讀:108 作者:小新 欄目:關系型數(shù)據(jù)庫

小編給大家分享一下如何查詢過去一段時間內某條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的解釋,大家可以根據(jù)自己的需求添加列。

V$ACTIVE_SESSION_HISTORY顯示數(shù)據(jù)庫中的采樣會話活動。它包含每秒執(zhí)行一次的活動數(shù)據(jù)庫會話的快照。如果數(shù)據(jù)庫會話在CPU上或正在等待不屬于Idlewait類的事件,則認為該數(shù)據(jù)庫會話是活動的。V$EVENT_NAME有關等待類的更多信息,請參閱視圖。

此視圖為每個樣本的每個活動會話包含一行,并首先返回最新的會話樣本行。描述活動會話歷史記錄中的會話的大多數(shù)列都存在于V$SESSION視圖中。

數(shù)據(jù)類型描述
SAMPLE_IDNUMBER樣本的ID
SAMPLE_TIMETIMESTAMP(3)采集樣品的時間
IS_AWR_SAMPLEVARCHAR2(1)指示此樣本是否已刷新或將刷新到自動工作負載存儲庫(DBA_HIST_ACTIVE_SESS_HISTORY)(Y)或不是(N
SESSION_IDNUMBER會話標識; 映射到V$SESSION.SID
SESSION_SERIAL#NUMBER會話序列號(用于唯一標識會話的對象); 映射到V$SESSION.SERIAL#
SESSION_TYPEVARCHAR2(10)會話類型:
  • FOREGROUND

  • BACKGROUND

FLAGSNUMBER保留供將來使用
USER_IDNUMBEROracle用戶標識符; 映射到V$SESSION.USER#
SQL_IDVARCHAR2(13)在采樣時會話正在執(zhí)行的SQL語句的SQL標識符
IS_SQLID_CURRENTVARCHAR2(1)指示SQL_ID列中的SQL標識符是否正在執(zhí)行(Y)或不執(zhí)行(N
SQL_CHILD_NUMBERNUMBER在采樣時會話正在執(zhí)行的SQL語句的子編號
SQL_OPCODENUMBER指示SQL語句的操作階段; 映射到V$SESSION.COMMAND

另請參閱:  “V $ SESSION”以獲取有關解釋此列的信息

SQL_OPNAMEVARCHAR2(64)SQL命令名稱
FORCE_MATCHING_SIGNATURENUMBERCURSOR_SHARING參數(shù)設置為時使用的簽名FORCE
TOP_LEVEL_SQL_IDVARCHAR2(13)頂級SQL語句的SQL標識符
TOP_LEVEL_SQL_OPCODENUMBER指示頂級SQL語句所處的操作階段
SQL_PLAN_HASH_VALUENUMBER游標的SQL計劃的數(shù)字表示。此信息可能不適用于所有會話樣本。V$SESSION不包含此信息。
SQL_PLAN_LINE_IDNUMBERSQL計劃行ID
SQL_PLAN_OPERATIONVARCHAR2(30)計劃操作名稱
SQL_PLAN_OPTIONSVARCHAR2(30)計劃操作選項
SQL_EXEC_IDNUMBERSQL執(zhí)行標識符
SQL_EXEC_STARTDATESQL執(zhí)行開始的時間
PLSQL_ENTRY_OBJECT_IDNUMBER堆棧中最頂層PL / SQL子程序的對象ID; 如果堆棧上沒有PL / SQL子程序,則為NULL。映射到DBA_OBJECTS.OBJECT_ID。
PLSQL_ENTRY_SUBPROGRAM_IDNUMBER堆棧上最頂層PL / SQL子程序的子程序ID。映射到DBA_OBJECTS.DATA_OBJECT_ID。
PLSQL_OBJECT_IDNUMBER當前正在執(zhí)行的PL / SQL子程序的對象ID。映射到DBA_OBJECTS.OBJECT_ID。
PLSQL_SUBPROGRAM_IDNUMBER當前正在執(zhí)行的PL / SQL對象的子程序ID; 執(zhí)行SQL時為NULL。映射到DBA_OBJECTS.DATA_OBJECT_ID。
QC_INSTANCE_IDNUMBER查詢協(xié)調器實例ID。僅當采樣會話是并行查詢從站時,此信息才可用。對于所有其他會話,值為。
QC_SESSION_IDNUMBER查詢協(xié)調器會話ID。僅當采樣會話是并行查詢從站時,此信息才可用。對于所有其他會話,值為。
QC_SESSION_SERIAL#NUMBER查詢協(xié)調器會話序列號。僅當采樣會話是并行查詢從站時,此信息才可用。對于所有其他會話,值為。
PX_FLAGS腳1 NUMBER保留供內部使用
EVENTVARCHAR2(64)如果SESSION_STATEWAITING,則表示會話在采樣時等待的事件。

如果SESSION_STATEON CPU,則此列為NULL。

另請參閱:  附錄C,“Oracle等待事件”

EVENT_IDNUMBER會話正在等待或會話最后等待的資源或事件的標識符。解釋類似于EVENT專欄。
EVENT#NUMBER會話正在等待或會話上次等待的資源或事件的編號。解釋類似于EVENT專欄。
SEQ#NUMBER唯一標識等待的序列號(每個等待增加)
P1TEXTVARCHAR2(64)第一個附加參數(shù)的文本
P1NUMBER第一個附加參數(shù)
P2TEXTVARCHAR2(64)第二個附加參數(shù)的文本
P2NUMBER第二個附加參數(shù)
P3TEXTVARCHAR2(64)第三個附加參數(shù)的文本
P3NUMBER第三個附加參數(shù)
WAIT_CLASSVARCHAR2(64)等待會話在采樣時等待的事件的類名。解釋類似于EVENT專欄。地圖到V$SESSION.WAIT_CLASS
WAIT_CLASS_IDNUMBER等待會話在采樣時等待的事件的類標識符。解釋類似于EVENT專欄。地圖到V$SESSION.WAIT_CLASS_ID。
WAIT_TIMENUMBER會話上次等待的事件的總等待時間,如果會話在CPU上進行采樣時; 如果會話在抽樣時等待

注意:是否WAIT_TIME= 是SESSION_STATE在采樣時找到它的有用信息,而不是WAIT_TIME它自身的實際值。地圖到V$SESSION.WAIT_TIME

SESSION_STATEVARCHAR2(7)會話狀態(tài):
  • WAITING

  • ON CPU

TIME_WAITEDNUMBER如果SESSION_STATEWAITING,那么會話實際花費在等待該事件的時間(以微秒為單位)。此列設置為采樣時正在進行的等待。

如果等待事件持續(xù)超過一秒并且在多個會話樣本行中等待,則等待該等待事件所花費的實際時間將填充在這些會話樣本行的最后一行中。在任何給定時間,此信息將不適用于最新的會話樣本。

BLOCKING_SESSION_STATUSVARCHAR2(11)阻止會話的狀態(tài):
  • VALID

  • NO HOLDER

  • GLOBAL

  • NOT IN WAIT

  • UNKNOWN

BLOCKING_SESSIONNUMBER阻塞會話的會話標識符。僅當阻止程序位于同一實例且會話正在等待隊列或“緩沖區(qū)忙”等待時才填充。地圖到V$SESSION.BLOCKING_SESSION
BLOCKING_SESSION_SERIAL#NUMBER阻止會話的序列號
BLOCKING_INST_IDNUMBER顯示的阻止程序的實例編號 BLOCKING_SESSION
BLOCKING_HANGCHAIN_INFOVARCHAR2(1)指示有關的信息BLOCKING_SESSION是來自掛起鏈(Y)還是不來自(N
CURRENT_OBJ#NUMBER會話引用的對象的對象ID。僅當會話正在等待應用程序,群集,并發(fā)和用戶I / O等待事件時,此信息才可用。地圖到V$SESSION.ROW_WAIT_OBJ#
CURRENT_FILE#NUMBER包含會話引用的塊的文件的文件號。僅當會話正在等待群集,并發(fā)和用戶I / O等待事件時,此信息才可用。地圖到V$SESSION.ROW_WAIT_FILE#。
CURRENT_BLOCK#NUMBER會話引用的塊的ID。僅當會話正在等待群集,并發(fā)和用戶I / O等待事件時,此信息才可用。地圖到V$SESSION.ROW_WAIT_BLOCK#。
CURRENT_ROW#NUMBER會話引用的行標識符。僅當會話正在等待群集,并發(fā)和用戶I / O等待事件時,此信息才可用。地圖到V$SESSION.ROW_WAIT_ROW#
TOP_LEVEL_CALL#NUMBEROracle頂級電話號碼
TOP_LEVEL_CALL_NAMEVARCHAR2(64)Oracle頂級呼叫名稱
CONSUMER_GROUP_IDNUMBER消費者組ID
XIDRAW(8)會話在采樣時正在處理的事務ID。V$SESSION不包含此信息。
REMOTE_INSTANCE#NUMBER遠程實例標識符,用于為此會話等待的塊提供服務。此信息僅在會話等待群集事件時可用。
TIME_MODELNUMBER時間模型信息
IN_CONNECTION_MGMTVARCHAR2(1)指示會話在采樣時是否正在進行連接管理(Y)或不是(N
IN_PARSEVARCHAR2(1)指示會話在采樣時是否正在解析(Y)或不是(N
IN_HARD_PARSEVARCHAR2(1)指示在sampling(Y)或不是(N)時會話是否難以解析
IN_SQL_EXECUTIONVARCHAR2(1)指示會話是否在sampling(Y)或不執(zhí)行時執(zhí)行SQL語句(N
IN_PLSQL_EXECUTIONVARCHAR2(1)指示會話是否在sampling(Y)或不執(zhí)行時執(zhí)行PL / SQL (N
IN_PLSQL_RPCVARCHAR2(1)指示會話是否在sampling(Y)或不執(zhí)行時執(zhí)行入站PL / SQL RPC調用(N
IN_PLSQL_COMPILATIONVARCHAR2(1)指示會話是在編譯時是否正在編譯PL / SQL(Y)或不是(N
IN_JAVA_EXECUTIONVARCHAR2(1)指示會話是否在sampling(Y)或不執(zhí)行時執(zhí)行Java (N
IN_BINDVARCHAR2(1)指示會話是否在sampling(Y)或不執(zhí)行時執(zhí)行綁定操作(N
IN_CURSOR_CLOSEVARCHAR2(1)指示會話是否在sampling(Y)或不是(N)時關閉游標
IN_SEQUENCE_LOADVARCHAR2(1)指示會話是按順序加載(按順序加載代碼)(Y)還是不加載(N
CAPTURE_OVERHEADVARCHAR2(1)指示會話是否正在執(zhí)行捕獲代碼(Y)或不執(zhí)行(N
REPLAY_OVERHEADVARCHAR2(1)指示會話是否正在執(zhí)行重放代碼(Y)或不執(zhí)行(N
IS_CAPTUREDVARCHAR2(1)指示是否正在捕獲會話(Y)或不捕獲(N
IS_REPLAYEDVARCHAR2(1)指示會話是否正在重播(Y)或不重播(N
SERVICE_HASHNUMBER標識服務的哈希值; 映射到V$ACTIVE_SERVICES.NAME_HASH
PROGRAMVARCHAR2(48)操作系統(tǒng)程序的名稱
MODULE腳2 VARCHAR2(48)采樣時執(zhí)行模塊的名稱,由DBMS_APPLICATION_INFO.SET_MODULE過程設置
ACTIONFootref 2VARCHAR2(32)采樣時執(zhí)行模塊的名稱,由DBMS_APPLICATION_INFO.SET_ACTION過程設置
CLIENT_IDVARCHAR2(64)會話的客戶標識符; 映射到V$SESSION.CLIENT_IDENTIFIER
MACHINEVARCHAR2(64)客戶端的操作系統(tǒng)機器名稱
PORTNUMBER客戶端端口號
ECIDVARCHAR2(64)執(zhí)行上下文標識符(由Application Server發(fā)送)
DBREPLAY_FILE_IDFootref 1NUMBER如果正在捕獲或重放會話,那么DBREPLAY_FILE_ID是工作負載捕獲或工作負載重放的文件ID; 否則它是NULL。
DBREPLAY_CALL_COUNTERFootref 1NUMBER如果正在捕獲或重放會話,則是正在捕獲或重放DBREPLAY_CALL_COUNTER的用戶呼叫的呼叫計數(shù)器; 否則它是NULL。
TM_DELTA_TIMENUMBER在其時間間隔(以微秒計)TM_DELTA_CPU_TIMETM_DELTA_DB_TIME被累積
TM_DELTA_CPU_TIMENUMBER此會話在過去TM_DELTA_TIME幾微秒內花在CPU上的時間
TM_DELTA_DB_TIMENUMBER此會話在過去TM_DELTA_TIME幾微秒內在數(shù)據(jù)庫調用中花費的時間
DELTA_TIMENUMBER自上次采樣或創(chuàng)建會話以來的時間間隔(以微秒為單位),累計接下來的五個統(tǒng)計信息
DELTA_READ_IO_REQUESTSNUMBER此會話在過去DELTA_TIME幾微秒內發(fā)出的讀取I / O請求數(shù)
DELTA_WRITE_IO_REQUESTSNUMBER此會話在過去DELTA_TIME幾微秒內發(fā)出的寫入I / O請求數(shù)
DELTA_READ_IO_BYTESNUMBER此會話在過去DELTA_TIME幾微秒內讀取的I / O字節(jié)數(shù)
DELTA_WRITE_IO_BYTESNUMBER此會話在過去DELTA_TIME幾微秒內寫入的I / O字節(jié)數(shù)
DELTA_INTERCONNECT_IO_BYTESNUMBER在過去DELTA_TIME幾微秒內通過I / O互連發(fā)送的I / O字節(jié)數(shù)
PGA_ALLOCATEDNUMBER此示例拍攝時此會話占用的PGA內存量(以字節(jié)為單位)
TEMP_SPACE_ALLOCATEDNUMBER拍攝此樣本時此會話消耗的TEMP內存量(以字節(jié)為單位)

看完了這篇文章,相信你對“如何查詢過去一段時間內某條sql使用的臨時表空間大小”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

sql
AI