`

oracle v$session,v$sqlarea 性能分析

阅读更多

/****查看资源最多的sql*****/

select 

PARSING_USER_ID ,VERSION_COUNT,SQL_TEXT,CPU_TIME,ELAPSED_TIME,EXECUTIONS,

ROWS_PROCESSED,

HASH_VALUE,

buffer_gets ,

disk_reads

 from V$SQLAREA

WHERE buffer_gets > 10000000 OR disk_reads > 1000000  

ORDER BY buffer_gets + 100 * disk_reads DESC;  

 

/*****查看某条SQL语句的资源消耗:**********

SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls  

FROM V$SQLAREA  

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

 

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

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 ;

 

 

/**************************8分析性能差的sql*******************************/

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越高表示读内存多,磁盘少是比较理想的状态,因此越

 

高越好 

 

 

/*********************选出最占用资源的查询********/

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  

 

--------------------查看当前会话所执行的语句以及会话相关信息-----

 select  a.sid,a.sql_address,s.address,a.username,a.TERMINAL,a.program, 

 

s.sql_text,s.SQL_TEXT,s.CPU_TIME,s.ELAPSED_TIME,s.FIRST_LOAD_TIME,s.LAST_ACTIVE_TIME from 

 

v$session a

,v$sqlarea s

where a.sql_address = s.address(+)

and a.sql_hash_value = s.hash_value(+)

order by a.username, a.sid

 

分享到:
评论

相关推荐

    Oracle v$sqlarea, v$sql, v$sqltext视图说明

    简单描述Oracle v$sqlarea, v$sql, v$sqltext视图说明

    Oracle中查看正在运行的SQL进程脚本分享

    Oracle的show processlist 代码如下: set linesize 400; set pagesize 400; col sql_text format ...FROM v$session a, v$sqlarea b WHERE a.sql_address = b.address  AND a.SQL_HASH_VALUE = b.HASH_VALUE; Orac

    学些动态性能表-word版

    学习动态性能表(四)--v$sqltext&v$sqlarea 学习动态性能表(五)--v$session 学习动态性能表(六)--v$session_wait&v$session_event 学习动态性能表(七)--v$process 学习动态性能表(八)--v$lock&v$locked_object ...

    查询Oracle中正在执行和执行过的SQL语句

    查询Oracle正在执行的sql语句及执行该语句的用户 ...FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 其它网友给出的正在执行的sql语句代码 select a.u

    Oracle10g DBA经常使用的动态性能视图和数据字典

    v$sqlarea:共享池中使用当前光标的统计信息,光标是一块内存区域,有Oracle处理SQL语句时打开。 v$statname:在v$sesstat中报告各个统计的含义 v$sysstat:基于当前操作会话进行的系统统计 v$waitstat:出现一个...

    第6课 Oracle性能优化(之一)

    如果查到CPU的占用率非常高,取出PID,并查看对应的SQL... from v$process vp, v$session vs, v$sqlarea vq where vp.ADDR = vs.PADDR and vs.SQL_HASH_VALUE = vq.HASH_VALUE and vp.SPID = 3872 --换成对应的SPID

    oracle 会话 死锁 执行sql 执行job的方法

    //根据用户分组会话 select t.USERNAME,count(*) from v$session t group by t.USERNAME ...select m.SQL_TEXT from v$session t , v$sqlarea m where t.USERNAME ='BUDGET' and t.sql_id = m.SQL_ID // s

    探讨:Oracle数据库查看一个进程是如何执行相关的实际SQL语句

    Oracle数据库查看一个进程是如何执行相关的实际SQL语句 代码如下:SELECT b.sql_text, sid, serial#, osuser, machine FROM v$session a, v$sqlarea b WHERE a.sql_address = b.address; 查询前台发出的SQL语句. ...

    oracle动态性能表

    oracle动态性能表 学习动态性能表 第一篇--v$sysstat 2007.5.23  按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图...

    定位Oracle中的topsql[总结].pdf

    可以通过查询 V$SQLAREA 视图,按照 buffer_gets 和 disk_reads 两个字段排序,找到资源消耗最大的 SQL 语句。 ```sql SELECT b.username username, a.sql_id, a.executions exec, a.buffer_gets buffer, ...

    Oracle 性能调整(真正由ORACLE甲骨文出品)

    8iR2) &lt;br&gt; 如果通过监测v$sqlarea发现有因为没有使用捆绑变量所引起 的性能问题: 50M的shared pool可以工作正常 50M的shared pool,当x$ksmsp中的记录数超过200,000条 时就可能会引起性能...

    v$sql_plan[总结].pdf

    如果之前的计划仍然在(例如,从 V$SQL_PLAN 选择出记录并保存到 oracle 表中供参考),那么就有可能去鉴别一条 SQL 语句在执行计划改变后性能方面有什么变化。 v$sql_plan视图中的常用列包括: 1. ADDRESS:当前 ...

    Oracle的SQL语句执行效率问题查找与解决方法文.pdf

    2. 利用 V_$SQLAREA 视图提供了执行的细节,包括执行次数、读取磁盘次数、读取缓冲区次数等信息。 3. 监控当前 Oracle 的 session,查看当前 session 中的 SQL 语句执行情况。 4. 使用 Trace 工具,查看数据库服务的...

    深入解析Oracle.DBA入门进阶与诊断案例

    6.2.10 V$SQL与V$SQLAREA视图 287 6.2.11 Oracle 10g中version_count过高的诊断 292 6.2.12 诊断案例二:临时表引发的竞争 297 6.2.13 小结 299 第7章 重做(Redo) 300 7.1 Redo的作用 300 7.2 Redo的...

    oracle_sql性能优化

    Oracle sql 性能优化调整 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种...

    ORACLE SQL性能优化系列

    ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用. 可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询. 数据库管理员必须在init.ora中为这个区域设置...

    ORACLE-SQL性能优化(内部培训资料).docx

    ORACLE SQL 性能优化系列 在 ORACLE SQL 中,性能优化是非常重要的一方面。一个良好的性能优化可以提高数据库的运行效率,减少资源的占用和提高用户体验。下面将从多个方面对 ORACLE SQL 的性能优化进行详细的介绍...

    ORACLE9i_优化设计与系统调整

    §5.1 理解ORACLE性能优化 82 §5.1.1 响应时间与吞吐量的折衷 82 §5.1.2 临界资源 83 §5.1.3 过度请求的影响 83 §5.1.4 调整以解决问题 83 §5.2 优化的执行者 84 §5.3 设置性能目标 84 第7章 系统优化方法 85 ...

    ORACLE精品脚本笔记

    监控当前数据库谁在运行什么SQL语句 &lt;br&gt;SELECT osuser, username, sql_text from v$session a, v$sqltext b where a.sql_address =b.address order by address, piece; &lt;br&gt;13. 监控字典缓冲区 ...

    ORACLE数据库日常维护手册.doc

    可以使用SELECT语句检查等待事件,例如:SELECT SID, A.USERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXT FROM V$SESSION A, V$SQLAREA T1 WHERE WAIT_CLASS &lt;&gt; 'Idle' AND A.SQL_ID = T1.SQL_ID;这条语句将返回当前等待...

Global site tag (gtag.js) - Google Analytics