sql >> Database teknologi >  >> RDS >> Sqlserver

WHERE-CASE-klausul Underforespørgselsydeevne

Jeg tror, ​​at løsningen i teorien kan hjælpe dig med at øge ydeevnen, men det afhænger også af, hvad skalarfunktionen rent faktisk gør. Jeg tror, ​​at i dette tilfælde (mit gæt er at formatere datoen til sidste dag i kvartalet) ville det være ubetydeligt.

Du vil måske læse denne side med foreslåede løsninger:

http://connect.microsoft.com/SQLServer/feedback/details/273443/the-scalar-expression-function-would-speed-performance-while-keeping-the-benefits-of- funktioner#

Og i Workarounds er der en kommentar om, at

Så det ser ud til, at ja, dette kan øge ydeevnen.

Din løsning er korrekt, men jeg vil anbefale, at du overvejer en forbedring af SQL'en for at bruge ELSE i stedet, det ser renere ud for mig:

AND ReportTypeID = CASE WHEN (@X = 1) THEN  1 
                    ELSE 4
                    END;


  1. Django app i Docker container kan ikke finde postgres

  2. Postgres.app kunne ikke starte på port 5432

  3. Arbejder med Salesforce.com i Alpha Anywhere

  4. Hvordan finder jeg, hvad der fylder en tabel?