v$sql、v$sqlarea 、v$sqltext
生活随笔
收集整理的這篇文章主要介紹了
v$sql、v$sqlarea 、v$sqltext
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
分享:
-------------------------------
v$sql、v$sqlarea?、v$sqltext
這三個視圖都可以用于查詢共享池中已經解析過的SQL語句及其相關信息。
V$SQL中列出了共享SQL區中所有語句的信息,它不包含GROUP?BY字句,并且為每一條SQL語句中單獨存放一條記錄;
V$SQLAREA中一條記錄顯示了一條共享SQL區中的統計信息。它提供了有在內存中、解析過的和準備運行的SQL語句的統計信息;
V$SQLTEXT包含了庫緩存中所有共享游標對應的SQL語句。它將SQL語句分片顯示。
下面介紹一下常用的V$SQLAREA的結構:
字段??????/?數據類型??????/?說明
?
SQL_TEXT?VARCHAR2(1000)??游標中SQL語句的前1000個字符。
?
SHARABLE_MEM?NUMBER??被游標占用的共享內存大小。如果存在多個子游標,則包含所有子游標占用的共享內存大小。
?
PERSISTENT_MEM?NUMBER??用于一個打開這條語句的游標的生命過程中的固定內存大小。如果存在多個子游標,則包含所有子游標生命過程中的固定內存大小。
?
RUNTIME_MEM??NUMBER??一個打開這條語句的游標的執行過程中的固定內存大小。如果存在多個子游標,則包含所有子游標執行過程中的固定內存大小。
?
SORTS??NUMBER??所有子游標執行語句所導致的排序次數。
?
VERSION_COUNT??NUMBER??緩存中關聯這條語句的子游標數。
?
LOADED_VERSIONS??NUMBER??緩存中載入了這條語句上下文堆(KGL?heap?6)的子游標數。
?
OPEN_VERSIONS??NUMBER??打開語句的子游標數。
?
USERS_OPENING??NUMBER??打開這些子游標的用戶數。
?
FETCHES??NUMBER??SQL語句的fetch數。
?
EXECUTIONS??NUMBER??所有子游標的執行這條語句次數。
?
USERS_EXECUTING??NUMBER??通過子游標執行這條語句的用戶數。
??
LOADS??NUMBER??語句被載入和重載入的次數
?
FIRST_LOAD_TIME??VARCHAR2(19)??語句被第一次載入的時間戳。
?
INVALIDATIONS??NUMBER??所以子游標的非法次數。
?
PARSE_CALLS??NUMBER??所有子游標對這條語句的解析調用次數。
?
DISK_READS??NUMBER??所有子游標運行這條語句導致的讀磁盤次數。
?
BUFFER_GETS??NUMBER??所有子游標運行這條語句導致的讀內存次數。
?
ROWS_PROCESSED??NUMBER??這條語句處理的總記錄行數。
?
COMMAND_TYPE??NUMBER??Oracle命令類型代號。
?
OPTIMIZER_MODE??VARCHAR2(10)??執行這條的優化器模型。
?
PARSING_USER_ID??NUMBER??第一次解析這條語句的用戶的ID。
?
PARSING_SCHEMA_ID??NUMBER??第一次解析這條語句所用的schema的ID。
?
KEPT_VERSIONS??NUMBER??所有被DBMS_SHARED_POOL包標識為保持(Keep)狀態的子游標數。
?
ADDRESS??RAW(4?|?8)??指向語句的地址
?
HASH_VALUE??NUMBER??這條語句在library?cache中hash值。
?
MODULE??VARCHAR2(64)??在第一次解析這條語句是通過調用DBMS_APPLICATION_INFO.SET_MODULE設置的模塊名稱。
?
MODULE_HASH??NUMBER??模塊的Hash值
?
ACTION??VARCHAR2(64)??在第一次解析這條語句是通過調用DBMS_APPLICATION_INFO.SET_ACTION設置的動作名稱。
?
ACTION_HASH??NUMBER??動作的Hash值
?
SERIALIZABLE_ABORTS??NUMBER??所有子游標的事務無法序列化的次數,這會導致ORA-08177錯誤。
?
IS_OBSOLETE??VARCHAR2(1)??游標是否被廢除(Y或N)。當子游標數太多了時可能會發生。
?
CHILD_LATCH??NUMBER??為了包含此游標的子latch數。
?
查看當前會話所執行的語句以及會話相關信息:
SQL>?select?a.sid||'.'||a.SERIAL#,?a.username,?a.TERMINAL,?a.program,?s.sql_text
????2????from?v$session?a,?v$sqlarea?s
????3????where?a.sql_address?=?s.address(+)
????4????and?a.sql_hash_value?=?s.hash_value(+)
????5????order?by?a.username,?a.sid;
-------------------------------
v$sql、v$sqlarea?、v$sqltext
這三個視圖都可以用于查詢共享池中已經解析過的SQL語句及其相關信息。
V$SQL中列出了共享SQL區中所有語句的信息,它不包含GROUP?BY字句,并且為每一條SQL語句中單獨存放一條記錄;
V$SQLAREA中一條記錄顯示了一條共享SQL區中的統計信息。它提供了有在內存中、解析過的和準備運行的SQL語句的統計信息;
V$SQLTEXT包含了庫緩存中所有共享游標對應的SQL語句。它將SQL語句分片顯示。
下面介紹一下常用的V$SQLAREA的結構:
字段??????/?數據類型??????/?說明
?
SQL_TEXT?VARCHAR2(1000)??游標中SQL語句的前1000個字符。
?
SHARABLE_MEM?NUMBER??被游標占用的共享內存大小。如果存在多個子游標,則包含所有子游標占用的共享內存大小。
?
PERSISTENT_MEM?NUMBER??用于一個打開這條語句的游標的生命過程中的固定內存大小。如果存在多個子游標,則包含所有子游標生命過程中的固定內存大小。
?
RUNTIME_MEM??NUMBER??一個打開這條語句的游標的執行過程中的固定內存大小。如果存在多個子游標,則包含所有子游標執行過程中的固定內存大小。
?
SORTS??NUMBER??所有子游標執行語句所導致的排序次數。
?
VERSION_COUNT??NUMBER??緩存中關聯這條語句的子游標數。
?
LOADED_VERSIONS??NUMBER??緩存中載入了這條語句上下文堆(KGL?heap?6)的子游標數。
?
OPEN_VERSIONS??NUMBER??打開語句的子游標數。
?
USERS_OPENING??NUMBER??打開這些子游標的用戶數。
?
FETCHES??NUMBER??SQL語句的fetch數。
?
EXECUTIONS??NUMBER??所有子游標的執行這條語句次數。
?
USERS_EXECUTING??NUMBER??通過子游標執行這條語句的用戶數。
??
LOADS??NUMBER??語句被載入和重載入的次數
?
FIRST_LOAD_TIME??VARCHAR2(19)??語句被第一次載入的時間戳。
?
INVALIDATIONS??NUMBER??所以子游標的非法次數。
?
PARSE_CALLS??NUMBER??所有子游標對這條語句的解析調用次數。
?
DISK_READS??NUMBER??所有子游標運行這條語句導致的讀磁盤次數。
?
BUFFER_GETS??NUMBER??所有子游標運行這條語句導致的讀內存次數。
?
ROWS_PROCESSED??NUMBER??這條語句處理的總記錄行數。
?
COMMAND_TYPE??NUMBER??Oracle命令類型代號。
?
OPTIMIZER_MODE??VARCHAR2(10)??執行這條的優化器模型。
?
PARSING_USER_ID??NUMBER??第一次解析這條語句的用戶的ID。
?
PARSING_SCHEMA_ID??NUMBER??第一次解析這條語句所用的schema的ID。
?
KEPT_VERSIONS??NUMBER??所有被DBMS_SHARED_POOL包標識為保持(Keep)狀態的子游標數。
?
ADDRESS??RAW(4?|?8)??指向語句的地址
?
HASH_VALUE??NUMBER??這條語句在library?cache中hash值。
?
MODULE??VARCHAR2(64)??在第一次解析這條語句是通過調用DBMS_APPLICATION_INFO.SET_MODULE設置的模塊名稱。
?
MODULE_HASH??NUMBER??模塊的Hash值
?
ACTION??VARCHAR2(64)??在第一次解析這條語句是通過調用DBMS_APPLICATION_INFO.SET_ACTION設置的動作名稱。
?
ACTION_HASH??NUMBER??動作的Hash值
?
SERIALIZABLE_ABORTS??NUMBER??所有子游標的事務無法序列化的次數,這會導致ORA-08177錯誤。
?
IS_OBSOLETE??VARCHAR2(1)??游標是否被廢除(Y或N)。當子游標數太多了時可能會發生。
?
CHILD_LATCH??NUMBER??為了包含此游標的子latch數。
?
查看當前會話所執行的語句以及會話相關信息:
SQL>?select?a.sid||'.'||a.SERIAL#,?a.username,?a.TERMINAL,?a.program,?s.sql_text
????2????from?v$session?a,?v$sqlarea?s
????3????where?a.sql_address?=?s.address(+)
????4????and?a.sql_hash_value?=?s.hash_value(+)
????5????order?by?a.username,?a.sid;
總結
以上是生活随笔為你收集整理的v$sql、v$sqlarea 、v$sqltext的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据采集组件:Flume基础用法和Kaf
- 下一篇: 蓝桥杯-算法训练 2的次幂表示