quitar off noexec mensaje funcion filas comandos afectadas sql-server nocount

sql-server - off - set sql server 2012



¿Cuáles son las ventajas y desventajas de desactivar NOCOUNT en consultas de SQL Server? (7)

De SQL BOL:

SET NOCOUNT ON evita el envío de mensajes DONE_IN_PROC al cliente para cada instrucción en un procedimiento almacenado. Para los procedimientos almacenados que contienen varias declaraciones que no devuelven demasiados datos reales, establecer SET NOCOUNT en ON puede proporcionar un impulso significativo en el rendimiento , ya que el tráfico de red se reduce en gran medida.

Consulte http://msdn.microsoft.com/en-us/library/ms189837.aspx para obtener más detalles.
Además, este artículo sobre SQLServerCentral es excelente en este tema:
Efectos de rendimiento de NOCOUNT

¿Cuáles son las ventajas y desventajas de desactivar NOCOUNT en consultas de SQL Server?


Personalmente, me gusta activar NOCOUNT para consultas que se ejecutan de forma manual y usar muchas instrucciones de Print para enviar mensajes de depuración. De esta manera, su salida se vería menos como:

Updating usernames (287 rows updated) Done Updating passwords (287 rows updated) Done Doing the next thing (1127 rows updated) Done

Y más como

Updating usernames Done Updating passwords Done Doing the next thing Done

Dependiendo de la sensibilidad de lo que está actualizando, a veces es útil incluir los conteos; sin embargo, para scripts complejos con muchos resultados, normalmente prefiero dejarlos fuera.


Siempre lo tengo activado por las razones anteriores, pero si tienes más de 1 conjunto de resultados en tu proceso, podría estropear el código del cliente


Simplemente detiene el mensaje que muestra el número de filas efectuadas para enviar / mostrar, lo que proporciona un beneficio de rendimiento , especialmente si tiene muchas declaraciones que devolverán el mensaje. Mejora el rendimiento ya que se envían menos datos a través de la red (entre el servidor sql y el front-end).

Más en BOL: SET NOCOUNT


Y no solo se reduce el tráfico de la red. Hay un impulso interno para SQL Server porque el plan de ejecución se puede optimizar debido a la reducción de una consulta adicional para averiguar cuántas filas se vieron afectadas.


SET NOCOUNT ON es una declaración en línea, el servidor Sql envía un mensaje al cliente. Esto se realiza para cada proceso (es decir, seleccionar, insertar, actualizar, eliminar). Si evita este mensaje, podemos mejorar el rendimiento general de nuestra base de datos y también reducir el tráfico de red

Por EX:

declarar @ una tabla (id int)

establecer nocount en

insertar @a seleccionar 1 unión seleccionar 2

establecer nocount off


Detiene el mensaje que indica que la cantidad de filas afectadas por una instrucción de Transact-SQL se devolverá como parte de los resultados.