Oracle V$SQLAREA
来源:互联网 发布:淘宝客拉人宣传单 编辑:程序博客网 时间:2024/06/05 14:59
V$SQLAREA视图持续跟踪所有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');
order BY disk_reads DESC )where ROWNUM<10 ;
DISK_READS NUMBER
The sum of the number of disk reads over all child cursors
SORTS NUMBER
Sum of the number of sorts that were done for all the child cursors
EXECUTIONS NUMBER
Total number of executions, totalled over all the child cursors
ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
SQL_TEXT
FROM V$SQLAREA
WHERE EXECUTIONS>0
AND BUFFER_GETS >0
AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8
--EXECUTIONS 所有子游标的执行这条语句次数
--DISK_READS 所有子游标运行这条语句导致的读磁盘次数
--BUFFER_GETS 所有子游标运行这条语句导致的读内存次数
--Hit_radio 命中率
--Reads_per_run 每次执行读写磁盘数
笼统的说EXECUTIONS,BUFFER_GETS,Hit_radio越高表示读内存多,磁盘少是比较理想的状态,因此越高越好
另外两个越高读磁盘次数越多,因此低点好
a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,
a.sql_text statement
from v$sqlarea a,dba_users b
where a.parsing_user_id=b.user_id
and a.disk_reads>100000
- Oracle v$sqlarea
- Oracle V$SQLAREA
- Oracle的v$sql,v$sqlarea,v$sqltext
- Oracle动态性能表(1)-V$SQLAREA
- Oracle动态性能表(1)-V$SQLAREA
- V$SQLAREA
- v$sqlarea
- Oracle中v$sqlarea与v$sql_plan全面分析
- Oracle动态性能表-(6)-V$SQLTEXT,V$SQLAREA
- ORACLE里两个重要的视图-v$SQL v$SQLAREA
- 学习Oracle动态性能表-(1)-V$SQLAREA
- oracle v$sqlarea分析SQL语句使用资源情况
- oracle v$sqlarea 分析SQL语句使用资源情况
- oracle v$sqlarea 分析SQL语句使用资源情况
- oracle 查询正在使用session和process、v$sqlarea销毁
- oracle系统表v$session、v$sql,v$sqlarea字段中文说明
- oracle sql资源消耗相关视图:v$sql,v$sqlarea,v$sqltext
- v$sqlarea 之LAST_ACTIVE_TIME
- Windows中的定时器
- 分析Spring包依赖关系
- win7 64位系统,vs2010下配置OpenGL开发环境
- DataTable和DataParameter联系
- 【学习笔记----数据结构23-线性索引查找】
- Oracle V$SQLAREA
- Android4.2.2 SurfaceFlinger之图形缓存区申请与分配dequeueBuffer
- windows service
- uC/OS-II的任务同步与通信
- Modbus协议
- mysql error 1064,1044
- Ant 打包war 生成文件内容build.xml
- TextBlock 绑定Command 当按钮用
- 普莱姆算法生成最小代价树---java代码