Chinaunix首页 | 论坛 | 博客
  • 博客访问: 100803
  • 博文数量: 26
  • 博客积分: 290
  • 博客等级: 二等列兵
  • 技术积分: 274
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-08 00:49
文章分类

全部博文(26)

文章存档

2013年(2)

2012年(19)

2011年(5)

我的朋友

分类:

2012-01-21 00:40:39

原文地址:SQL分析诊断总汇 作者:Gforge

SQL诊断总汇:
  • 查询个用户正在使用的SQL
    1. SELECT S.USERNAME, Q.SQL_TEXT
    2. FROM V$SESSION S, V$SQLTEXT Q
    3. WHERE S.SQL_ADDRESS = Q.ADDRESS AND S.SQL_HASH_VALUE = Q.HASH_VALUE
  • 查询被锁住的用户所用的SQL
    1. SELECT S.USERNAME USERNAME,
    2.          S.SID SID,
    3.          S.SERIAL# SERIAL,
    4.          Q.SQL_TEXT SQL_TEXT
    5.   FROM V$SESSION S, V$SQLTEXT Q, V$LOCK L
    6.  WHERE S.LOCKWAIT IS NOT NULL
    7.          AND S.SQL_ADDRESS = Q.ADDRESS
    8.          AND S.LOCKWAIT = L.KADDR
    9.          AND S.SQL_HASH_VALUE = Q.HASH_VALUE
  • 查询高消耗的SQL
    1. SELECT S.BUFFER_GETS,
    2.            S.DISK_READS,
    3.            S.EXECUTIONS,
    4.            DECODE(S.EXECUTIONS, 0, 0, S.BUFFER_GETS/S.EXECUTIONS) B_E,
    5.            S.SQL_TEXT
    6.     FROM V$SQL S
    7. ORDER BY S.DISK_READS DESC
  • 查询运行了很久的SQL
    1. SELECT S.USERNAME,
    2.          S.SID,
    3.          S.OPNAME,
    4.          ROUND(S.SOFAR * 100 / S.TOTALWORK, 0) || '%' AS PROGRESS,
    5.          S.TIME_REMAINING,
    6.          Q.SQL_TEXT
    7.   FROM V$SESSION_LONGOPS S, V$SQL Q 
    8.   WHERE S.TIME_REMAINING <> 0
    9.   AND S.SQL_ADDRESS = Q.ADDRESS
    10.   AND S.SQL_HASH_VALUE = Q.HASH_VALUE
  • 查询CPU消耗最高的SQL
    1. SELECT P.PID,
    2.          S.SID,
    3.          S.USERNAME,
    4.          S.OSUSER,
    5.          P.SERIAL#,
    6.          P.TERMINAL,
    7.          P.PROGRAM,
    8.          P.BACKGROUND,
    9.          S.STATUS,
    10.          RTRIM(SUBSTR(Q.SQL_TEXT, 1, 80)) SQL
    11.   FROM V$SQLAREA Q, V$SESSION S, V$PROCESS P
    12.   WHERE P.ADDR = S.PADDR
    13.   AND S.SQL_ADDRESS = Q.ADDRESS(+) 
    14.   AND P.SPID LIKE '%&OS_P_ID%'
  • DISK READ 最高的SQL
    1. SELECT DISK_READS, SQL_TEXT
    2.   FROM ( SELECT *
    3.               FROM V$SQLAREA
    4.           ORDER BY DISK_READS DESC)
    5.  WHERE ROWNUM <= 5
  • 查询10条性能最差的SQL
    1. SELECT *
    2.   FROM ( SELECT Q.PARSING_USER_ID,Q.SORTS, Q.COMMAND_TYPE,Q.DISK_READS, Q.SQL_TEXT
    3.               FROM V$SQLAREA Q
    4.           ORDER BY DISK_READS DESC)
    5.  WHERE ROWNUM <= 10
阅读(792) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~