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

SÆT ANTAL PÅ brug

Ok, nu har jeg gjort min research, her er aftalen:

I TDS-protokollen, SET NOCOUNT ON sparer kun 9-bytes pr. forespørgsel, mens selve teksten "SET NOCOUNT ON" er på hele 14 bytes. Jeg plejede at tro, at 123 row(s) affected blev returneret fra serveren i almindelig tekst i en separat netværkspakke, men det er ikke tilfældet. Det er faktisk en lille struktur kaldet DONE_IN_PROC indlejret i svaret. Det er ikke en separat netværkspakke, så ingen rundrejser er spildt.

Jeg tror, ​​at du næsten altid kan holde dig til standardtælleadfærd uden at bekymre dig om ydeevnen. Der er dog nogle tilfælde, hvor beregning af antallet af rækker på forhånd ville påvirke ydeevnen, såsom en fremadrettet markør. I så fald kan NOCOUNT være en nødvendighed. Bortset fra det er der absolut ingen grund til at følge mottoet "brug NOCOUNT hvor det er muligt".

Her er en meget detaljeret analyse om ubetydeligheden af ​​SET NOCOUNT indstilling:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/



  1. Liste over datatyper i SQL Server 2017

  2. Sådan sikrer du, at databaser ikke har fragmenterede indekser

  3. Sammenlign kun dag og måned med datofelt i mysql

  4. Brug af PHP-MySQL-vedvarende forbindelser til at køre WordPress-blog