План выполнения изменяется в той же логике - PullRequest
0 голосов
/ 28 октября 2019

Я получаю 2 разных плана выполнения, когда меняю порядок или условие?

Первый запрос выполняется сразу, а второй работает иначе и складывается на пару минут.

Не могупонять, почему.

хороший план исполнения



    select findamittakul.recid,count(*) ct,max(c1.key5) key5 
    from 
    findamittakul join contact1 c1 on(tz=key1)  
                  join CONTACT2 c2 on(c1.accountno=c2.accountno )
    where
    c2.hp=findamittakul.hp
    <b>and (c1.CREATEON =findamittakul.CREATEON or c1.CREATEON>findamittakul.createon )</b>
    and c2.HAFKADABLOCK='' 
    and source=1 and c1.kupatype =3
    group by findamittakul.recid

плохой план исполнения



    select findamittakul.recid,count(*) ct,max(c1.key5) key5 
    from 
    findamittakul join contact1 c1 on(tz=key1)  
                  join CONTACT2 c2 on(c1.accountno=c2.accountno )
    where
    c2.hp=findamittakul.hp
    <b>and (c1.CREATEON >findamittakul.CREATEON or c1.CREATEON=findamittakul.createon )</b>
    --andc1.CREATEON >=findamittakul.CREATEON  --same plane
    and c2.HAFKADABLOCK ='' 
    and source=1 and c1.kupatype =3
    group by findamittakul.recid 

...