Welcome to Sign in | Help

Re: Cum sa fac sa pic pe index?!

  •  11-12-2008, 2:25 PM

    Re: Cum sa fac sa pic pe index?!

    In primul rand multumesc tuturor pentru raspunsuri.

    Revin cu detalii:

    rremus:

    Primul lucru de incercat: daca area_source_id, area_sink_id si data_type_id impreuna sint destule de selective (o combinatie de valori alege doar 5-10% din toate record-urile) si query-ul tau este tipic pentru aplicatie atunci solutia simpla este sa schimbi indexul clustered sa fie in ordinea data_type_id, area_source_id, area_sink_id, efective_date

    Effective_date este cel mai selectiv.
    Pentru un effective_date sunt cam 4000 de randuri, restul campurilor din index au 5-50 valori distincte. La o tabela de cateva milioane de randuri, nu am avut de ales alta ordine a coloanelor din index.

    rremus:

    Mai sint si probleme care pot apare din auto-parametrizare daca planul a fost generat pe alte valori ale constantelor (mai ales effective_date)

    Inainte de script am rulat tot timpul:
    DBCC DROPCLEANBUFFERS
    DBCC FREEPROCCACHE
    GO


    rremus:

    Si nu in utimul rind incearca sa scapi de OR-ul explicit cit si de cele implicite ( IN este de fapt un OR). OR este killer-ul sargabilitatzii. Chiar si un UNION intre doua query-uri poate fi mai optim decit un predicat OR.

    Pai am scapat de OR. Am rulat scriptul:
    UPDATE cor_time_Serie
    SET termination_date = '2050-01-01'
    WHERE termination_Date IS NULL


    si am schimbat ultima conditie pe data:
    AND effective_date BETWEEN '2008-09-11 10:00PM' AND termination_date
    Rezultatul este acelasi :(


View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems