Добре, сега направих проучването си, ето сделката:
В TDS протокол SET NOCOUNT ON
спестява само 9 байта на заявка, докато самият текст "SET NOCOUNT ON" е огромните 14 байта. Мислех, че 123 row(s) affected
беше върнат от сървъра в обикновен текст в отделен мрежов пакет, но това не е така. Всъщност това е малка структура, наречена DONE_IN_PROC
заложено в отговора. Това не е отделен мрежов пакет, така че не се губят двупосочни пътувания.
Мисля, че почти винаги можете да се придържате към поведението на броене по подразбиране, без да се притеснявате за производителността. Има обаче някои случаи, при които предварителното изчисляване на броя на редовете би повлияло на производителността, като например курсор само напред. В този случай NOCOUNT може да е необходимост. Освен това, няма абсолютно никаква нужда да следвате мотото „използвайте NOCOUNT, където е възможно“.
Ето един много подробен анализ за незначителността на SET NOCOUNT
настройка:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/