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代码

SELECThash_value, executions, buffer_gets, disk_reads, parse_calls

FROMV$SQLAREA

WHEREbuffer_gets > 10000000ORdisk_reads > 1000000

ORDERBYbuffer_gets + 100 * disk_readsDESC;

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语句的资源消耗:

Sql代码

SELECThash_value, buffer_gets, disk_reads, executions, parse_calls

FROMV$SQLAREA

WHEREhash_Value = 228801498ANDaddress = hextoraw('CBD8E4B0');

SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls

FROM V$SQLAREA

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

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

Sql代码

SELECT*FROM(selectPARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_textFROMv$sqlarea

orderBYdisk_readsDESC)whereROWNUM<10 ;

SELECT * FROM (select PARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea

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代码

SELECTEXECUTIONS , DISK_READS, BUFFER_GETS,

ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio,

ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run,

SQL_TEXT

FROMV$SQLAREA

WHEREEXECUTIONS>0

ANDBUFFER_GETS >0

AND(BUFFER_GETS-DISK_READS)/BUFFER_GETS

SELECT EXECUTIONS , DISK_READS, BUFFER_GETS,

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

查询共享池中已经解析过的SQL语句及其相关信息

--EXECUTIONS 所有子游标的执行这条语句次数

--DISK_READS 所有子游标运行这条语句导致的读磁盘次数

--BUFFER_GETS 所有子游标运行这条语句导致的读内存次数

--Hit_radio 命中率

--Reads_per_run 每次执行读写磁盘数

笼统的说EXECUTIONS,BUFFER_GETS,Hit_radio越高表示读内存多,磁盘少是比较理想的状态,因此越高越好

另外两个越高读磁盘次数越多,因此低点好

选出最占用资源的查询

Sql代码

selectb.username username,a.disk_reads reads,a.executionsexec,

a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,

a.sql_text statement

fromv$sqlarea a,dba_users b

wherea.parsing_user_id=b.user_id

anda.disk_reads>100000

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

oracle sqlarea表结构,oracle v$sqlarea 分析SQL语句使用资源情况相关推荐

  1. oracle改表结构,oracle 表结构的修改

    oracle 表结构的修改 更改表的结构 1.编辑表的字段 修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制): 语法: ALTER TABLE 表名 MODIFY(列名 数据类 ...

  2. oracle synonym 表结构,ORACLE SYNONYM详解

    以下内容整理自Oracle 官方文档 一 概念 A synonym is an alias for any table, view,materialized view, sequence, proce ...

  3. oracle改表结构,Oracle修改表结构

    修改表结构  -- 使用alert关键字 修改表名:alert table 原表名 rename to  新表名; --(1)向表中增加新列(添加字段) alert table 表名 add 添加的列 ...

  4. MySQL中修改表结构的关键字_下列SQL语句中,修改表结构的关键字是

    [单选题]对<将进酒>全诗分析不正确的是 [单选题]下列划线词语的解释有误的一项是 [多选题]下列食品属于不完全蛋白质的是 ( ) . [单选题]下列聚合函数中属性列必须是数值型的是 [单 ...

  5. 数据库表结构及数据的复制SQL语句

    表的复制 复制表在数据库数据维护时使用到,以下的方式不仅可以复制表结构还可以复制表的数据 CREATE TABLE 新表名 SELECT * FROM 旧表名 如果只向复制表结构而不需要数据,可以使用 ...

  6. linux下oracle查看表结构,Oracle 查看表结构的方法

    1,DESCRIBE 命令 使用方法如下: SQL> describe nchar_tst(nchar_tst为表名) 显示的结果如下: 名称                           ...

  7. oracle复制一个表的结构图,Oracle复制表结构

    Oracle复制表结构 如下,表a是数据库中已经存在的表,b是准备根据表a进行复制创建的表: 1.只复制表结构的sql create table b as select * from a where ...

  8. MySql 、Oracle 获取表结构和字段信息

    MySql获取表结构信息 SELECTTABLE_NAME,TABLE_COMMENT FROMinformation_schema.`TABLES` WHERETABLE_SCHEMA = 'dm' ...

  9. 数据库oracle修改属性列,Oracle修改表结构

    本篇文章帮大家学习Oracle修改表结构,包含了Oracle修改表结构使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. 在本教程中,我们将学习如何使用Oracle ALTE ...

最新文章

  1. 【NLP】 NLP专栏栏主自述,说不出口的话就交给AI说吧
  2. 计算机网络——HTTP协议和Web
  3. oracle orapath,SQLNET.ORA中的NAMES.DIRECTORY_PATH设置
  4. Virtualenv --使用文档
  5. 2017.4.5 假期的宿舍 思考记录
  6. 九度oj题目1153:括号匹配问题
  7. CVPR 2019接收论文公布:共1300篇,接收率降4%,你中了没?
  8. 数字条纹投影系统中基于概率分布函数的灵活伽玛计算算法
  9. c语言头文件sys wait.h,错误:sys/wait.h:没有这样的文件或目录
  10. 等保二级费用_二级等保测评费用标准_测评费用
  11. 学习C语言的必备书籍-从入门到精通
  12. movs 数据传送指令_数据传送指令之:MOV指令
  13. python——spilt和strip用法
  14. JSON以及Ajax
  15. [实战] 朴素贝叶斯分类器进行垃圾邮件过滤
  16. 小猿圈分享-web报表中电子印章/水印的轻松实现
  17. ASP.NET MVC图片文件上传与下载
  18. P2P之关资金存管(三)我们的模式:懒猫
  19. python中文朗读_python 利用pyttsx3文字转语音
  20. 2020年中国包装专用设备行业发展现状分析,下游行业发展迅速,行业需求空间广阔「图」

热门文章

  1. 5日直播预告丨Oracle DBA的SQL编写技能提升宝典
  2. 下载丨10月数据库技术通讯:HAIP在两个私网网卡上发生互换,导致ASM实例启动失败...
  3. 异常掉电导致的ORA-[kfrValAcd30]故障处理
  4. APP违法使用个人信息?不用怕,华为云VSS为你保驾护航
  5. 华为云薛浩:媒体业务进入全面云化时代,云原生成为必然选择
  6. 618 技术特辑(二)几百万人同时下单的秒杀,为什么越来越容易抢到了?
  7. 5月20日,GaussDB将有大事发生
  8. 4项探索+4项实践,带你了解华为云视觉预训练研发技术
  9. 曾陷“数据风暴”危机的赛默飞世尔如何化险为夷的?
  10. 面试官:你对Redis缓存了解吗?面对这11道面试题是否有很多问号?