sql >> Database >  >> RDS >> Sqlserver

sp_executesql is traag met parameters

Voeg OPTIE (OPNIEUW COMPILE) toe aan het einde

... AND SensorValue != -32767 OPTION (RECOMPILE) 

Ik vermoed dat je last hebt van "parameter sniffing"

Als dat het geval is, kunnen we het bij de OPTIE laten of alternatieven overwegen

Update 1

Het volgende artikel zal u kennis laten maken met "parameter sniffing" http://pratchev.blogspot.be/2007/08/parameter-sniffing.html

Ik raad je aan om de ins en outs te leren kennen, omdat het je veel beter zal maken in het begrijpen van sql server internals (dat kan bijten).

Als je het begrijpt, weet je dat de afweging met optie hercompileren kan een prestatievermindering zijn als de instructie zeer . wordt uitgevoerd vaak.

Ik voeg persoonlijk de optie hercompileren toe na Ik weet dat de oorzaak het snuiven van parameters is en laat het erin tenzij er een prestatieprobleem is. Het herschrijven van een statement om het snuiven van slechte parameters te voorkomen, leidt tot verlies van intentie en dit vermindert de onderhoudbaarheid. Maar er zijn gevallen waarin het herschrijven gerechtvaardigd is (gebruik goede opmerkingen als je dat doet).

Update 2

De beste lectuur die ik over dit onderwerp had, was in hoofdstuk 32 genaamd "Parameter sniffing:your best friend... behalve wanneer het niet door" door GRANT FRITCHEY

Het wordt aanbevolen.

SQL Server MVP Deep Dives, Volume 2



  1. Hoe u gebruikersinformatie en gebruikerslogin en wachtwoord het beste kunt opslaan

  2. INSERT INTO @TABLE EXEC @query met SQL Server 2000

  3. MariaDB JSON_MERGE_PATCH() uitgelegd

  4. Aan de slag met Shareplex op Windows op AWS, deel 1