学习动态性能表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');