sql >> Database >  >> RDS >> Sqlserver

STEL NOCOUNT IN OP gebruik

Ok nu heb ik mijn onderzoek gedaan, hier is de deal:

In het TDS-protocol, SET NOCOUNT ON bespaart slechts 9 bytes per zoekopdracht terwijl de tekst "SET NOCOUNT ON" zelf maar liefst 14 bytes is. Ik dacht altijd dat 123 row(s) affected werd teruggestuurd van de server in platte tekst in een apart netwerkpakket, maar dat is niet het geval. Het is in feite een kleine structuur genaamd DONE_IN_PROC ingebed in de reactie. Het is geen apart netwerkpakket, dus er worden geen retourvluchten verspild.

Ik denk dat je je bijna altijd aan het standaard telgedrag kunt houden zonder je zorgen te maken over de prestaties. Er zijn echter enkele gevallen waarin het vooraf berekenen van het aantal rijen de prestaties zou beïnvloeden, zoals een alleen-vooruit-cursor. In dat geval kan NOCOUNT een noodzaak zijn. Anders dan dat, is het absoluut niet nodig om het motto "gebruik NOCOUNT waar mogelijk" te volgen.

Hier is een zeer gedetailleerde analyse over de onbeduidendheid van SET NOCOUNT instelling:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/



  1. MySQL LOG10() Functie – Retourneer de Base-10 logaritme van een waarde

  2. Wat is het verschil tussen =null en IS NULL?

  3. Oracle-nummer naar C# decimaal

  4. Semantisch zoeken gebruiken in SQL Server