Ok, teraz zrobiłem swoje badania, oto oferta:
W protokole TDS SET NOCOUNT ON
oszczędza tylko 9 bajtów na zapytanie, podczas gdy sam tekst "SET NOCOUNT ON" ma aż 14 bajtów. Kiedyś myślałem, że wpłynęło to na 123 row(s) affected
został zwrócony z serwera w postaci zwykłego tekstu w osobnym pakiecie sieciowym, ale tak nie jest. W rzeczywistości jest to niewielka struktura o nazwie DONE_IN_PROC
w odpowiedzi. Nie jest to oddzielny pakiet sieciowy, więc nie marnuje się podróży w obie strony.
Myślę, że prawie zawsze można trzymać się domyślnego zachowania liczenia, nie martwiąc się o wydajność. Istnieją jednak przypadki, w których wcześniejsze obliczenie liczby wierszy miałoby wpływ na wydajność, na przykład kursor tylko do przodu. W takim przypadku NOCOUNT może być koniecznością. Poza tym absolutnie nie ma potrzeby podążania za mottem „użyj NOCOUNT wszędzie tam, gdzie to możliwe”.
Oto bardzo szczegółowa analiza nieistotności SET NOCOUNT
ustawienie:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/