學習動態效能表(三)-(1)-v$sql

聽海★藍心夢發表於2009-03-05

學習動態效能表 第三篇-(1)-v$sql

V$SQL中儲存具體的SQL語句。

  一條語句可以對映多個cursor,因為物件所指的cursor可以有不同使用者(如例1)。如果有多個cursor(子游標)存在,在V$SQLAREA為所有cursor提供集合資訊。
例1:
這裡介紹以下child cursor
user A: select * from tbl
user B: select * from tbl
大家認為這兩條語句是不是一樣的啊,可能會有很多人會說是一樣的,但我告訴你不一定,那為什麼呢?
這個tblA看起來是一樣的,但是不一定哦,一個是A使用者的, 一個是B使用者的,這時他們的執行計劃分析程式碼差別可能就大了哦,改下寫法大家就明白了:
select * from A.tbl
select * from B.tbl

  在個別cursor上,v$sql可被使用。該檢視包含cursor級別資料。當試圖定位session或使用者以分析cursor時被使用。
  PLAN_HASH_VALUE列儲存的是數值表示的cursor執行計劃。可被用來對比執行計劃。PLAN_HASH_VALUE讓你不必一行一行對比即可輕鬆鑑別兩條執行計劃是否相同。

V$SQL中的列說明:
SQL_TEXT:SQL文字的前1000個字元
SHARABLE_MEM:佔用的共享記憶體大小(單位:byte)
PERSISTENT_MEM:生命期內的固定記憶體大小(單位:byte)
RUNTIME_MEM:執行期內的固定記憶體大小
SORTS:完成的排序數
LOADED_VERSIONS:顯示上下文堆是否載入,1是0否
OPEN_VERSIONS:顯示子游標是否被鎖,1是0否
USERS_OPENING:執行語句的使用者數
FETCHES:SQL語句的fetch數。
EXECUTIONS:自它被載入快取庫後的執行次數
USERS_EXECUTING:執行語句的使用者數
LOADS:物件被載入過的次數
FIRST_LOAD_TIME:初次載入時間
INVALIDATIONS:無效的次數
PARSE_CALLS:解析呼叫次數
DISK_READS:讀磁碟次數
BUFFER_GETS:讀快取區次數
ROWS_PROCESSED:解析SQL語句返回的總列數
COMMAND_TYPE:命令型別代號
OPTIMIZER_MODE:SQL語句的最佳化器模型
OPTIMIZER_COST:最佳化器給出的本次查詢成本
PARSING_USER_ID:第一個解析的使用者ID
PARSING_SCHEMA_ID:第一個解析的計劃ID
KEPT_VERSIONS:指出是否當前子游標被使用DBMS_SHARED_POOL包標記為常駐記憶體
ADDRESS:當前遊標父控制程式碼地址
TYPE_CHK_HEAP:當前堆型別檢查說明
HASH_VALUE:快取庫中父語句的Hash值
PLAN_HASH_VALUE:數值表示的執行計劃。
CHILD_NUMBER:子游標數量
MODULE:在第一次解析這條語句是透過呼叫DBMS_APPLICATION_INFO.SET_MODULE設定的模組名稱。
ACTION:在第一次解析這條語句是透過呼叫DBMS_APPLICATION_INFO.SET_ACTION設定的動作名稱。
SERIALIZABLE_ABORTS:事務未能序列化次數
OUTLINE_CATEGORY:如果outline在解釋cursor期間被應用,那麼本列將顯示出outline各類,否則本列為空
CPU_TIME:解析/執行/取得等CPU使用時間(單位,毫秒)
ELAPSED_TIME:解析/執行/取得等消耗時間(單位,毫秒)
OUTLINE_SID:outline session標識
CHILD_ADDRESS:子游標地址
SQLTYPE:指出當前語句使用的SQL語言版本
REMOTE:指出是否遊標是一個遠端映象(Y/N)
OBJECT_STATUS:物件狀態(VALID or INVALID)
IS_OBSOLETE:當子游標的數量太多的時候,指出遊標是否被廢棄(Y/N)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-561500/,如需轉載,請註明出處,否則將追究法律責任。

相關文章