Welcome to Sign in | Help

Cum sa fac sa pic pe index?!

  •  11-11-2008, 12:40 PM

    Cum sa fac sa pic pe index?!

    Salutare,
    Am o tabela cu 2 indecsi:
    index1 / clustered / pe coloanele effective_date, area_source_id, area_sink_id, data_type_id
    index2 / nonclustered, unique, primary key/pe coloana  id

    SELECT *
    FROM my_table
    WHERE 1=1
        AND area_source_id IN (15, 37)
        AND area_sink_id IN (15, 37)
        AND data_status_id = 1
        AND data_type_id = 2
        AND data_source_id = 3
        AND (
                    ('2008-09-11 10:00PM' BETWEEN effective_date AND termination_date)
                    OR
                    (effective_date <= '2008-09-11 10:00PM' AND termination_date IS NULL)
                )


    Intrebare:
    Pentru SQLul de mai sus, cum sa rescriu ultima conditie din WHERE a.i. sa am index seek pe index1? Acum, in planul de executie se face un index scan pe index2 (asta datorita ultimei conditii pe effective_date, presupun pentru ca effective_date nu este SARGable).

    Am folosit hint ca sa fortez folosirea lui index1, dar timpul de executie este si mai mare.

    Orice help, sugestie este binevenita.
    Multumesc.
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems