sql >> Base de Datos >  >> RDS >> Sqlserver

ESTABLECER NOCOUNT ON uso

Ok, ahora he hecho mi investigación, este es el trato:

En el protocolo TDS, SET NOCOUNT ON solo guarda 9 bytes por consulta, mientras que el texto "SET NOCOUNT ON" en sí mismo es la friolera de 14 bytes. Solía ​​pensar que 123 row(s) affected fue devuelto desde el servidor en texto sin formato en un paquete de red separado, pero ese no es el caso. De hecho, es una pequeña estructura llamada DONE_IN_PROC integrado en la respuesta. No es un paquete de red independiente, por lo que no se desperdician viajes de ida y vuelta.

Creo que puede apegarse al comportamiento de conteo predeterminado casi siempre sin preocuparse por el rendimiento. Sin embargo, hay algunos casos en los que calcular el número de filas de antemano afectaría el rendimiento, como un cursor de solo avance. En ese caso, NOCOUNT podría ser una necesidad. Aparte de eso, no hay absolutamente ninguna necesidad de seguir el lema "use NOCOUNT siempre que sea posible".

Aquí hay un análisis muy detallado sobre la insignificancia de SET NOCOUNT configuración:http://daleburnett.com/2014/01/everything-ever-wanted-know-set-nocount/