Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

ЗАДАДЕТЕ NOCOUNT ЗА употреба

Добре, сега направих проучването си, ето сделката:

В 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/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете дали файл съществува или не в sql сървър?

  2. Преобразуване на DateTime във формат YYYY-MM-DD в SQL Server

  3. Как да вмъкнете C# списък в база данни с помощта на Dapper.NET

  4. Използвайте SET TEXTSIZE, за да ограничите връщаните данни за всеки ред в SQL Server

  5. Адаптивният сървър не е наличен или не съществува грешка при свързване към SQL Server от PHP