sql >> Database >  >> RDS >> Sqlserver

WHERE-CASE-component Subqueryprestaties

Ik denk dat de oplossing in theorie je kan helpen de prestaties te verbeteren, maar het hangt ook af van wat de scalaire functie eigenlijk doet. Ik denk dat in dit geval (mijn gok is dat de datum wordt geformatteerd naar de laatste dag in het kwartaal) echt te verwaarlozen zou zijn.

Misschien wilt u deze pagina lezen met voorgestelde oplossingen:

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

En in Tijdelijke oplossingen staat een opmerking die

Het lijkt er dus op dat dit de prestaties kan verhogen.

Uw oplossing is correct, maar ik zou aanraden om een ​​verbetering van de SQL te overwegen om in plaats daarvan ELSE te gebruiken, het lijkt mij schoner:

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


  1. Innerlijke samenvoeging van 2 tafels met dezelfde ID

  2. SQL houdt het aantal voorvallen bij via een schuifvenster

  3. Hoe open je een SDF-bestand (SQL Server Compact Edition)?

  4. Hoe deze gegevensupdatefout in Laravel op te lossen?