Ok nu har jag gjort min research, här är affären:
I TDS-protokollet, SET NOCOUNT ON
sparar bara 9-byte per fråga medan texten "SET NOCOUNT ON" i sig är hela 14 byte. Jag trodde att 123 row(s) affected
returnerades från servern i vanlig text i ett separat nätverkspaket men så är inte fallet. Det är faktiskt en liten struktur som heter DONE_IN_PROC
inbäddad i svaret. Det är inte ett separat nätverkspaket så inga tur- och returresor går till spillo.
Jag tror att du nästan alltid kan hålla fast vid standardbeteendet utan att oroa dig för prestandan. Det finns dock vissa fall där beräkning av antalet rader i förväg skulle påverka prestandan, till exempel en framåtriktad markör. I så fall kan NOCOUNT vara en nödvändighet. Utöver det finns det absolut inget behov av att följa mottot "använd NOCOUNT där det är möjligt".
Här är en mycket detaljerad analys om obetydlighet av SET NOCOUNT
inställning:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/