http://blog.sina.com.cn/s/blog_6ceed3280100x0q5.html

通过v$sqlarea,v$sql查询最占用资源的查询

(2011-09-01 22:22:09)

转载

标签:

杂谈

 
-----------------------
v$sqlarea,v$sql
-----------------------
从V$SQLAREA中查询最占用资源的查询
select b.username username,a.disk_reads reads,
    a.executions exec,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
order by a.disk_reads desc;
用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。
V$SQL是内存共享SQL区域中已经解析的SQL语句。

列出使用频率最高的5个查询:
select sql_text,executions
from (select sql_text,executions,
   rank() over
    (order by executions desc) exec_rank
   from v$sql)
where exec_rank <=5;
消耗磁盘读取最多的sql top5:
select disk_reads,sql_text
from (select sql_text,disk_reads,
   dense_rank() over
     (order by disk_reads desc) disk_reads_rank
   from v$sql)
where disk_reads_rank <=5;

找出需要大量缓冲读取(逻辑读)操作的查询:
select buffer_gets,sql_text
from (select sql_text,buffer_gets,
   dense_rank() over
     (order by buffer_gets desc) buffer_gets_rank
   from v$sql)
where buffer_gets_rank<=5;
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:

Sql代码  
  1. SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls
  2. FROM V$SQLAREA
  3. WHERE buffer_gets > 10000000 OR disk_reads > 1000000
  4. ORDER BY buffer_gets + 100 * disk_reads DESC;

2.查看某条SQL语句的资源消耗:

Sql代码  
  1. SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls
  2. FROM V$SQLAREA
  3. WHERE hash_Value = 228801498 AND address = hextoraw('CBD8E4B0');

查找前10条性能差的sql语句

Sql代码  
  1. SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea
  2. order BY disk_reads DESC )where ROWNUM<10 ;

说明:
EXECUTIONS表示同一条SQL语句一共执行了多少次,SORTS表示排序的次数,DISK_READS表示物理读的数量。
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
分析性能差的sql

Sql代码  
  1. SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,
  2. ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,
  3. ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,
  4. SQL_TEXT
  5. FROM V$SQLAREA
  6. WHERE EXECUTIONS>0
  7. AND BUFFER_GETS >0
  8. AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8

查询共享池中已经解析过的SQL语句及其相关信息
--EXECUTIONS 所有子游标的执行这条语句次数
--DISK_READS 所有子游标运行这条语句导致的读磁盘次数
--BUFFER_GETS 所有子游标运行这条语句导致的读内存次数
--Hit_radio 命中率
--Reads_per_run 每次执行读写磁盘数

笼统的说EXECUTIONS,BUFFER_GETS,Hit_radio越高表示读内存多,磁盘少是比较理想的状态,因此越高越好
另外两个越高读磁盘次数越多,因此低点好

选出最占用资源的查询

Sql代码  
  1. select b.username username,a.disk_reads reads,a.executions exec,
  2. a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,
  3. a.sql_text statement
  4. from v$sqlarea a,dba_users b
  5. where a.parsing_user_id=b.user_id
  6. and a.disk_reads>100000

本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。

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, ADDRESS
HASH_VALUE. ADDRESS   V$SESSION    SQL_HASH_VALUE, SQL_ADDRESS

示例:已知hash_value:3111103299,查询sql语句:
select * from v$sqltext
where hash_value='3111103299'
order by piece

转载于:https://blog.51cto.com/716378/804492

通过v$sqlarea,v$sql查询最占用资源的查询相关推荐

  1. oracle sqlarea表结构,oracle v$sqlarea 分析SQL语句使用资源情况

    V$SQLAREA 本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列.本视图在分析SQL语句资源使用方面非常重要. V$SQLARE ...

  2. 查询CPU占用高的SQL语句的解决方案

    触发器造成死锁.作业多且频繁.中间表的大量使用.游标的大量使用.索引的设计不合理.事务操作频繁.SQL语句设计不合理,都会造成查询效率低下.影响服务器性能的发挥.我们可以使用sql server自带的 ...

  3. mysql查看cpu使用高sql语句_查询CPU占用高的SQL语句

    触发器造成死锁.作业多且频繁.中间表的大量使用.游标的大量使用.索引的设计不合理.事务操作频繁.SQL语句设计不合理,都会造成查询效率低下.影响服务器性能的发挥.我们可以使用sql server自带的 ...

  4. 如何识别SQL Server中运行缓慢的查询

    总览 (Overview ) Slow running queries are one of the most common problems in every organization dealin ...

  5. SQL Server 数据库之单表查询

    单表查询 1. 概述 2. 单表查询命令 2. 无条件查询与条件查询 2.1 无条件查询 2.2 条件查询 3. 聚集函数 4. 分组查询 5. 排序查询 1. 概述 单表查询是只对一个数据表进行查询 ...

  6. SQL SERVER 占用资源高的SQL语句

    SQL SERVER 占用资源高的SQL语句 原创曹振华 最后发布于2019-12-03 19:45:05 阅读数 16  收藏 展开 --SQL SERVER 占用资源高的SQL语句: --查询占用 ...

  7. sql server 在占用服务器内存居高不下怎么办【转】

    在管理一个测试服务器的时候,内存使用率居高不下,在资源管理器中查看到 sql server 2008  占用了80%的系统资源,于是找到了一下资料,并解决了Sql Server 2008 占用内存过大 ...

  8. SQL总结(三)其他查询

    SQL总结(三)其他查询 其他常用的SQL,在这里集合. 1.SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中.常用于创建表的备份或者用于对记录进行存档. 语法: SELECT c ...

  9. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

最新文章

  1. Chromium浏览器之渲染引擎Blink
  2. LINUX正则表达式-- grep
  3. C#进阶之路(一):委托
  4. (赞助5本)谷歌官方推荐的 TensorFlow 2 “豹书”来了!
  5. richedit line insertion error什么意思_大连 LINE 是怎样的一个公司?
  6. 单点登录Redis存储Session及Cookie场景介绍
  7. IDEA依赖冲突分析神器—Maven Helper
  8. springboot使用netty容器_Spring Boot 2 实战:使用 Undertow 来替代Tomcat
  9. 5.7 tensorflow2实现主成分分析(PCA) ——python实战(下篇)
  10. java取html中的table_htmlunit 操作table表格(一)
  11. CocoaPods报错:The dependency 'xxx' is not used in any concrete target
  12. 表达式计算引擎-JEP
  13. WPS_Word空白页删除
  14. shell脚本中shift的用法
  15. TB级倾斜摄影建模集群完美硬件配置方案
  16. mysql修复主从不一致_MySQL主从不一致修复
  17. excel三种查重方法
  18. 路由器子接口及VLAN配置
  19. 常见企业拓扑Cisco配置:三层交换机互联、DHCP配置、路由器交换机配置、NAT静态地址转换、DMZ区域的ACL配置
  20. 一款免费的PDF转换工具-LightPDF完美版(PDF编辑器) 最新版

热门文章

  1. Android系统中震动功能的测试
  2. 机器学习:神经网络之表达
  3. 将视频抽取成图片,并对图片进行批量命名opencv代码
  4. ansys icem cfd网格划分技术实例详解_详解航空燃油滑油3D打印热交换器设计流程...
  5. 打包外星人_《疯狂外星人》中外星人带上金箍就是大圣,放下金箍就是至尊宝!...
  6. cad 打开硬件加速卡_CAD运行用加速技巧
  7. 保存pdf文件的一种方法
  8. qpsk的映射过程_FPGA数字信号处理(28)QPSK星座映射与解映射
  9. 开放大学计算机应用基础第三次,江苏开放大学-计算机应用基础第三次.doc
  10. C语言寻找第k小元素,小技巧——查找第k小的元素