定位Oracle中的top sql.docVIP

  • 8
  • 0
  • 约6.04千字
  • 约 6页
  • 2017-11-24 发布于河南
  • 举报
定位Oracle中的top sql

定位Oracle中的top sql 很多时候数据库效率低是少数几个top sql造成的,从top sql入手进行数据库调优是常用的手段。 10G中用sql_id代替address和hash_value 首先要找出top sql,可以从以下几个角度入手: 占用资源最多的sql: 按照读的次数找 SELECT b.username username,a.sql_id, a.executions exec, a.buffer_gets buffer, a.disk_reads disk, a.parse_calls parse,a.sql_text statement FROM V$SQLAREA a, dba_users b WHERE a.parsing_user_id=b.user_id and ( a.buffer_gets OR a.disk_reads 1000000 ) ORDER BY a.buffer_gets + 100 * a.disk_reads DESC; 也可以将v$sqlarea换成v$sql,再增加一个child_number字段,就可以找到子游标 在10.2的版本中推荐在v$sqlstats找。 如果当前已经恢复正常,可以查询v$active_session_history打出top sql 在DBA_HIST_SQLSTAT中找DISK_READS_DELTA最大的SQL select snap_id,buffer_gets_delta,disk_reads_delta reads,executions_delta exec,a.sql_id,b.sql_text from dba_hist_sqlstat a,dba_hist_sqltext b where a.sql_id=b.sql_id and (a.BUFFER_GETS_DELTA OR a.disk_reads_delta 1000000) order by a.buffer_gets_delta + 100 * a.disk_reads_delta desc; SELECT b.username username,a.sql_id, a.executions exec, a.buffer_gets buffer, a.disk_reads disk,a.child_number child,PLAN_HASH_VALUE, a.parse_calls parse,a.sql_text statement FROM V$SQL a, dba_users b WHERE a.parsing_user_id=b.user_id and ( a.buffer_gets OR a.disk_reads 1000000 ) ORDER BY a.buffer_gets + 100 * a.disk_reads DESC; 也可以找到PLAN_HASH_VALUE,和v$sql_plan联合起来查找它的执行计划 列出拥有超过400个cursor的sessionID SELECT sid, count(0) ct FROM v$open_cursor GROUP BY sid HAVING COUNT(0) 400 ORDER BY ct desc; 打到排序多的SQL SELECT a.username, a.sid, a.serial#, a.osuser, b.tablespace, b.blocks, c.sql_text FROM v$session a, v$tempseg_usage b, v$sqlarea c WHERE a.saddr = b.session_addr AND c.address= a.sql_address AND c.hash_value = a.sql_hash_value ORDER BY b.tablespace, b.blocks; 也可以按目前的等待事件查找,查看当前会话的等待事件 找出在等latch的会话 SELECT EVENT, SUM(P3) SLEEPS, SUM(SECONDS_IN_WAIT) SECONDS_IN_WAIT FROM V$SESSION_WAIT WHERE EVENT LIKE latch% GROUP BY EVENT; select inst_id,event,count(1) from gv$session_wait where event not in (SQL*Net message to client,rdbms ipc message,SQL*Net message from

文档评论(0)

1亿VIP精品文档

相关文档