gavin 发表于 2014-5-26 10:40:33

查看sql执行计划似乎正常,IO很大

本帖最后由 gavin 于 2014-5-26 15:49 编辑

环境:Oracle Linux x86 64
数据库版本:oracle 11g r2




通过awr分析发现以下这条sql有问题,怎么会一直运行,从25号直到26号这条sql一直在运行。
可是查看执行计划却没发现有什么异常,给开发,开发人员说这sql没问题,特求助大家帮看看:
sql:
SELECT  A.*          ,
        B.LEFT_POINT ,
        B.RIGHT_POINT,
        B.LEVEL_TYPE
FROM
        (
                SELECT  R.*,
                        LEVEL LEVEL_NUM
                FROM
                        (
                                SELECT  *
                                FROM    MI_TEMP_TREE R
                                WHERE   STATUS         = 1
                                        AND QTY_MEMBER = :B1
                                        AND S_TYPE     = 0
                        )
                        R START
                WITH RIGHT_NO = :B2 CONNECT BY PRIOR RIGHT_NO = LINK_NO
        )
        A
        LEFT JOIN MI_MEMBER_RIGHT B
        ON      A.RIGHT_NO=B.RIGHT_NO
WHERE   A.LEVEL_NUM      <= :B3
ORDER BY LEVEL_NUM;

执行计划也没看出在哪开销很大

foxhuntwang 发表于 2014-5-26 16:38:50

PL/SQL Developer  执行的,肯定是人为执行的, 你找出来  杀掉不就完了

gavin 发表于 2014-5-26 18:04:40

foxhuntwang 发表于 2014-5-26 16:38 static/image/common/back.gif
PL/SQL Developer  执行的,肯定是人为执行的, 你找出来  杀掉不就完了

杀了,但关键是为何这么一条sql io能如些的大。

Mille 发表于 2014-5-27 09:50:44

gavin 发表于 2014-5-26 18:04 static/image/common/back.gif
杀了,但关键是为何这么一条sql io能如些的大。

哪看出io了

不了峰 发表于 2014-5-27 09:57:18

使用绑定变成,用dbms_plan跟踪时有时会不准确。论坛里以前有讨论过
最准的要用10046 trace去跟踪
页: [1]
查看完整版本: 查看sql执行计划似乎正常,IO很大