Heim > Datenbank > MySQL-Tutorial > 获取数据库30天内各个指标的TOP语句

获取数据库30天内各个指标的TOP语句

WBOY
Freigeben: 2016-06-07 15:57:47
Original
1264 Leute haben es durchsucht

要查询短时间内的可以从v$sql 或者是v$sqlarea 如果要查询一周或者一个月内 那么有可能在V$SQLAREA里找不到!下面是通过历史DBA_HIST_SQLSTAT里获得, 这个是通过快照方式保留下来的. --执行时间最长的 WITH BASTABLE AS ( SELECT DBMS_LOB.SUBSTR(SQL_TEXT,40

要查询短时间内的可以从v$sql 或者是v$sqlarea 如果要查询一周或者一个月内 那么有可能在V$SQLAREA里找不到!下面是通过历史DBA_HIST_SQLSTAT里获得, 这个是通过快照方式保留下来的.

--执行时间最长的

WITH  BASTABLE AS

  SELECT DBMS_LOB.SUBSTR(SQL_TEXT,4000, 1 ) AS SQL_FULL_TEXT,
         DHST.SQL_ID,
         ROUND (X.ELAPSED_TIME / 1000000 / X.EXECUTIONS_DELTA, 3) AVG_ELAPSED_TIME_SEC,
         ROUND (X.CPU_TIME / 1000000 / X.EXECUTIONS_DELTA, 3) AVG_CPU_TIME_SEC,
         ROUND (X.BUFFER_GETS_DELTA / X.EXECUTIONS_DELTA, 3) AVG_BUFFER_GETS, 
         ROUND (X.PARSE_CALLS_DELTA/X.EXECUTIONS_DELTA*100, 3) EXEC_PARSE_RATE,
         ROUND (X.PHYSICAL_READ_BYTES_DELTA/1024/X.EXECUTIONS_DELTA, 3) AVG_PHYSICAL_READ_KB,
         ROUND (X.DISK_READS_DELTA / X.EXECUTIONS_DELTA, 3) AVG_DISK_READS,     
         EXECUTIONS_DELTA AS EXEC_TOTAL_NUM,DHST.COMMAND_TYPE,N.COMMAND_NAME       
    FROM DBA_HIST_SQLTEXT DHST, DBA_HIST_SQLCOMMAND_NAME    N, 
         ( 
          SELECT DHSS.SQL_ID SQL_ID,
                 SUM (DHSS.CPU_TIME_DELTA) CPU_TIME,  
                 SUM (DHSS.ELAPSED_TIME_DELTA) ELAPSED_TIME,  
                 CASE SUM (DHSS.EXECUTIONS_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.EXECUTIONS_DELTA) END AS EXECUTIONS_DELTA,
                 CASE SUM (DHSS.SORTS_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.SORTS_DELTA) END AS SORTS_DELTA,    
                 CASE SUM (DHSS.FETCHES_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.FETCHES_DELTA) END AS FETCHES_DELTA,
                 CASE SUM (DHSS.PARSE_CALLS_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.PARSE_CALLS_DELTA) END AS PARSE_CALLS_DELTA,
                 CASE SUM (DHSS.DISK_READS_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.DISK_READS_DELTA) END AS DISK_READS_DELTA,
                 CASE SUM (DHSS.BUFFER_GETS_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.BUFFER_GETS_DELTA) END AS BUFFER_GETS_DELTA,
                 CASE SUM (DHSS.IOWAIT_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.IOWAIT_DELTA) END AS IOWAIT_DELTA,
                 CASE SUM (DHSS.PHYSICAL_READ_BYTES_DELTA) WHEN 0 THEN 1 ELSE SUM (DHSS.PHYSICAL_READ_BYTES_DELTA) END AS PHYSICAL_READ_BYTES_DELTA                                                                                                                                                                                        
            FROM DBA_HIST_SQLSTAT DHSS
           WHERE DHSS.SNAP_ID IN  
                (SELECT SNAP_ID  
                   FROM DBA_HIST_SNAPSHOT  
                  WHERE BEGIN_INTERVAL_TIME >= TRUNC(SYSDATE)-30
                    AND END_INTERVAL_TIME                 )
           AND DHSS.PARSING_SCHEMA_NAME =UPPER('SHARK')                     
          GROUP BY DHSS.SQL_ID
          ) X
   WHERE X.SQL_ID = DHST.SQL_ID  
     AND DHST.COMMAND_TYPE = N.COMMAND_TYPE
)
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, AVG_DISK_READS AS VALUE_S, 'AVG_DISK_READS' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%' ORDER BY AVG_DISK_READS DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, AVG_ELAPSED_TIME_SEC AS VALUE_S, 'AVG_ELAPSED_TIME_SEC' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%'  ORDER BY AVG_ELAPSED_TIME_SEC DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, AVG_CPU_TIME_SEC AS VALUE_S, 'AVG_CPU_TIME_SEC' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%'  ORDER BY AVG_CPU_TIME_SEC DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, AVG_BUFFER_GETS AS VALUE_S, 'AVG_BUFFER_GETS' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%'  ORDER BY AVG_BUFFER_GETS DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, EXEC_PARSE_RATE AS VALUE_S, 'EXEC_PARSE_RATE' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%'  ORDER BY EXEC_PARSE_RATE DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, AVG_PHYSICAL_READ_KB AS VALUE_S, 'AVG_PHYSICAL_READ_KB' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47 ORDER BY AVG_PHYSICAL_READ_KB DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, EXEC_TOTAL_NUM AS VALUE_S, 'EXEC_TOTAL_NUM' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%'  ORDER BY EXEC_TOTAL_NUM DESC ) WHERE ROWNUM UNION ALL
SELECT * FROM
(
SELECT SQL_FULL_TEXT,SQL_ID,EXEC_TOTAL_NUM, AVG_ELAPSED_TIME_SEC AS VALUE_S, 'PROCEDURES_EXEC_TIME' AS VALUES_TYPE
FROM BASTABLE WHERE COMMAND_TYPE=47  AND SQL_FULL_TEXT NOT LIKE '/* SQL A%'  ORDER BY AVG_ELAPSED_TIME_SEC DESC ) WHERE ROWNUM

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage