Oracle-SQL with multiple where-conditions extremely slow -


i've found strange behaviour in (hibernate)sql-query. i've multiple and/or statements in query. if split query in 3 different queries, query faster additional selects have do.

but cause of , how resolve that? 2 select-statements think problem somewhere else.

here query:

select * zdadba.tpartner partner              partner.partnrext in (                      select distinct stapel.fpartnrext zdadba.tstapel stapel                      stapel.lagernd = 1                      , stapel.auftrag_id null ,                    (                      (                          cast(stapel.version date) <= to_date('30.06.' || to_char(extract(year sysdate)), 'dd.mm.yyyy')                      ) ,                      (                          to_date(sysdate) >= to_date('30.06.' || to_char(extract(year sysdate)), 'dd.mm.yyyy')                      )                         ,                      (                         partner.versandart = 'halbjaehrlich'                      )                                        )                 or                  (                     (                         cast(stapel.version date) <= to_date('01.01.' || to_char(extract(year sysdate)), 'dd.mm.yyyy')                     ) ,                      (                          to_date(sysdate) <= to_date('30.06.' || to_char(extract(year sysdate)), 'dd.mm.yyyy')                      )                  )                     , partner.versandart = 'halbjaehrlich'              or                (                  (                      (                          cast(stapel.version date) <= to_date('01.01.' || to_char(extract(year sysdate)), 'dd.mm.yyyy')                      ) ,                      (                          to_date(sysdate) >=  to_date('01.01.' || to_char(extract(year sysdate)), 'dd.mm.yyyy')                      )                  )  , partner.versandart = 'jaehrlich'               )              ); 

there 2 constructs using tend associated slow response. 1 use of subqueries (the target of "in" operator). other or operator.

you can rewrite query uses in subquery equivalent query join. result faster. sorry, i'm lazy in case.

you may have no choice use or operator. sometimes, can come alternative uses union combine result sets, runs slow well.

good luck!


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -