學習動態性能表sql
第四篇-(1)-V$SQLTEXT 2007.5.29session
本視圖包括Shared pool中SQL語句的完整文本,一條SQL語句可能分紅多個塊被保存於多個記錄內。性能
注:V$SQLAREA只包括頭1000個字符。學習
V$SQLTEXT中的經常使用列排序
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中的信息列
這兩列被用於鑑別SQL語句,有時,兩條不一樣的語句可能hash值相同。這時候,必須連同ADDRESS一同使用來確認SQL語句。
V$SQLAREA中的其它經常使用列
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');