Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

351

积分

0

好友

8

主题
1#
发表于 2012-5-13 09:55:09 | 查看: 2849| 回复: 0
刘大帮忙看看这条语句怎么优化,awr报告里看到执行花费了1,314s,但是在v$sql里找不到这条语句了,可能被刷出去了,执行计划我贴在附件里了。

SELECT   pacct.fid faccountid, pacct.faccounttypeid, pacct.fnumber fnumber,
         pacct.flongname_l2 fname, pacct.fparentid
    FROM (SELECT DISTINCT va.fid
                     FROM t_gl_assistbalance tb INNER JOIN t_bd_accountview va
                          ON va.fid = tb.faccountid
                          LEFT OUTER JOIN t_gl_voucherentry ve
                          ON va.fid = ve.faccountid
                          LEFT OUTER JOIN t_gl_voucherassistrecord tvar
                          ON tvar.fentryid = ve.fid
                          INNER JOIN t_bd_period tp ON tb.fperiodid = tp.fid
                    WHERE (    (    (    (    (    (    (    (    (    tp.ftypeid =
                                                                            :1
                                                                   AND (   (tp.fperiodyear <
                                                                               :2
                                                                           )
                                                                        OR (    tp.fperiodyear =
                                                                                   :3
                                                                            AND (tp.fperiodnumber <=
                                                                                    :4
                                                                                )
                                                                           )
                                                                       )
                                                                  )
                                                              AND tb.fcurrencyid =
                                                                            :5
                                                             )
                                                         AND (   (tb.fdebitfor <>
                                                                             0
                                                                 )
                                                              OR (tb.fcreditfor <>
                                                                             0
                                                                 )
                                                              OR (tb.fendbalancefor <>
                                                                             0
                                                                 )
                                                              OR (tvar.foriginalamount <>
                                                                             0
                                                                 )
                                                             )
                                                        )
                                                    AND tb.fbaltype = :6
                                                   )
                                               AND tb.forgunitid = :7
                                              )
                                          AND va.faccounttableid = :8
                                         )
                                     AND va.fcompanyid = :9
                                    )
                                AND (   (va.fnumber IN ('1001', '5701'))
                                     OR (    (va.fnumber > '1001')
                                         AND (va.fnumber < '5701~~')
                                        )
                                    )
                               )
                           AND tb.fassistgrpid IN (
                                  SELECT DISTINCT hg.fid
                                             FROM t_bd_assistanthg hg INNER JOIN t_org_admin t_4
                                                  ON hg.fadminorgid = t_4.fid
                                            WHERE (    (t_4.flongnumber >= :10
                                                       )
                                                   AND (t_4.flongnumber <= :11
                                                       )
                                                  ))
                          )) t_av
         INNER JOIN
         t_bd_accountview acct ON t_av.fid = acct.fid
         INNER JOIN t_bd_accountview pacct
         ON (    (    pacct.fcompanyid = acct.fcompanyid
                  AND pacct.faccounttableid = acct.faccounttableid
                 )
             AND INSTR ((acct.flongnumber || '!'),
                        (pacct.flongnumber || '!')
                       ) = 1
            )
   WHERE (    ((pacct.flevel >= :12) AND (pacct.flevel <= :13))
          AND pacct.fcompanyid = :14
         )
ORDER BY pacct.fnumber ASC;

sqlplan.txt

2.65 KB, 下载次数: 298

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 17:53 , Processed in 0.055936 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569