Oracle 查询每天执行慢的SQL

Posted 奋斗的小鸟_oracle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 查询每天执行慢的SQL相关的知识,希望对你有一定的参考价值。

前言:  工作中的您是否有 想对每天慢的sql进行查询、汇总或者行优化等情况,如下SQL希望对您有帮助


--- 查询每天执行慢的SQL: SELECT S.SQL_TEXT,        S.SQL_FULLTEXT,        S.SQL_ID,        ROUND(ELAPSED_TIME / 1000000 / (CASE                WHEN (EXECUTIONS = 0 OR NVL(EXECUTIONS, 1 ) = 1) THEN                 1                ELSE                 EXECUTIONS              END),              2) "执行时间'S'",        S.EXECUTIONS "执行次数",        S.OPTIMIZER_COST "COST",        S.SORTS,        S.MODULE, --连接模式(JDBC THIN CLIENT:程序)        -- S.LOCKED_TOTAL,        S.PHYSICAL_READ_BYTES "物理读",        -- S.PHYSICAL_READ_REQUESTS "物理读请求",        S.PHYSICAL_WRITE_REQUESTS "物理写",        -- S.PHYSICAL_WRITE_BYTES "物理写请求",        S.ROWS_PROCESSED      "返回行数",        S.DISK_READS          "磁盘读",        S.DIRECT_WRITES       "直接路径写",        S.PARSING_SCHEMA_NAME,        S.LAST_ACTIVE_TIME   FROM GV$SQLAREA S  WHERE ROUND(ELAPSED_TIME / 1000000 / (CASE                WHEN (EXECUTIONS = 0 OR NVL(EXECUTIONS, 1 ) = 1) THEN                 1                ELSE                 EXECUTIONS              END),              2) > 5 --100 0000微秒=1S    AND S.PARSING_SCHEMA_NAME = USER    AND TO_CHAR(S.LAST_LOAD_TIME, 'YYYY-MM-DD') =        TO_CHAR( SYSDATE, 'YYYY-MM-DD' )    AND S.COMMAND_TYPE IN (2 , 3, 5, 6 , 189)  ORDER BY "执行时间'S'" DESC;

/*  SQL中 COMMAND_TYPE意义: 
2:INSERT 3:SELECT 6:UPDATE 7:DELETE 189:MERGE
详情可通过查找V$SQLCOMMAND视图  */
V$SQLAREA    官网解释: http://docs.oracle.com/cd/E11882_01/server.112/e40402/dynviews_3064.htm#REFRN30259   V$SQLCOMMAND 官网解释: http://docs.oracle.com/cd/E11882_01/server.112/e40402/dynviews_3066.htm#REFRN30632

以上是关于Oracle 查询每天执行慢的SQL的主要内容,如果未能解决你的问题,请参考以下文章

sql INSERT 执行慢的问题

查询oracle比较慢的session和sql

oracle 中sql执行超慢几乎查询不出来

查询oracle比较慢的session和sql

查询oracle比较慢的session和sql

Talend 作业以较慢的传输速率运行