學習動態性能表(4)--v$sqltext&v$sqlarea

學習動態性能表sql

第四篇-(1)-V$SQLTEXT  2007.5.29session

 

  本視圖包括Shared pool中SQL語句的完整文本,一條SQL語句可能分紅多個塊被保存於多個記錄內。性能

  注:V$SQLAREA只包括頭1000個字符。學習

 

V$SQLTEXT中的經常使用列排序

 

  • HASH_VALUE:SQL語句的Hash值
  • ADDRESS:sql語句在SGA中的地址
  • SQL_TEXT:SQL文本。
  • PIECE:SQL語句塊的序號

 

V$SQLTEXT中的鏈接列內存

Column                                          View                                     Joined Column(s)資源

HASH_VALUE, ADDRESS                  V$SQL, V$SESSION          HASH_VALUE, ADDRESSget

HASH_VALUE. ADDRESS                  V$SESSION                        SQL_HASH_VALUE, SQL_ADDRESShash

 

示例:已知hash_value:3111103299,查詢sql語句:io

select * from v$sqltext

where hash_value='3111103299'

order by piece

 

 

第四篇-(2)-V$SQLAREA  2007.5.29

 

  本視圖持續跟蹤全部shared pool中的共享cursor,在shared pool中的每一條SQL語句都對應一列。本視圖在分析SQL語句資源使用方面很是重要。

 

V$SQLAREA中的信息列

 

  • HASH_VALUE:SQL語句的Hash值。
  • ADDRESS:SQL語句在SGA中的地址。

這兩列被用於鑑別SQL語句,有時,兩條不一樣的語句可能hash值相同。這時候,必須連同ADDRESS一同使用來確認SQL語句。

  • PARSING_USER_ID:爲語句解析第一條CURSOR的用戶
  • VERSION_COUNT:語句cursor的數量
  • KEPT_VERSIONS:
  • SHARABLE_MEMORY:cursor使用的共享內存總數
  • PERSISTENT_MEMORY:cursor使用的常駐內存總數
  • RUNTIME_MEMORY:cursor使用的運行時內存總數。
  • SQL_TEXT:SQL語句的文本(最大隻能保存該語句的前1000個字符)。
  • MODULE,ACTION:使用了DBMS_APPLICATION_INFO時session解析第一條cursor時的信息

 

V$SQLAREA中的其它經常使用列

 

  • SORTS: 語句的排序數
  • CPU_TIME: 語句被解析和執行的CPU時間
  • ELAPSED_TIME: 語句被解析和執行的共用時間
  • PARSE_CALLS: 語句的解析調用(軟、硬)次數
  • EXECUTIONS: 語句的執行次數
  • INVALIDATIONS: 語句的cursor失效次數
  • LOADS: 語句載入(載出)數量
  • ROWS_PROCESSED: 語句返回的列總數

 

V$SQLAREA中的鏈接列

Column                                          View                                                                Joined Column(s)

HASH_VALUE, ADDRESS                  V$SESSION                                                   SQL_HASH_VALUE, SQL_ADDRESS

HASH_VALUE, ADDRESS                  V$SQLTEXT, V$SQL, V$OPEN_CURSOR  HASH_VALUE, ADDRESS

SQL_TEXT                                   V$DB_OBJECT_CACHE                               NAME

 

示例:

1.查看消耗資源最多的SQL:

SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls

  FROM V$SQLAREA

 WHERE buffer_gets > 10000000 OR disk_reads > 1000000

 ORDER BY buffer_gets + 100 * disk_reads DESC;

 

2.查看某條SQL語句的資源消耗:

SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls

  FROM V$SQLAREA

 WHERE hash_Value = 228801498 AND address = hextoraw('CBD8E4B0');

相關文章
相關標籤/搜索