Chinaunix首页 | 论坛 | 博客
  • 博客访问: 267966
  • 博文数量: 111
  • 博客积分: 1591
  • 博客等级: 上尉
  • 技术积分: 877
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-20 15:14
文章分类

全部博文(111)

文章存档

2014年(1)

2012年(41)

2011年(69)

分类: Oracle

2012-01-13 22:05:02

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
阅读(1639) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

我要去水立方2012-01-21 00:43:06

都是很有效的命令