sql server 设置SET NOCOUNT

SET NOCOUNT { ON | OFF }

设置返回的结果中是否包含受 Transact-SQL 语句影响的行数的信息

默认情况下为 OFF

当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。

当 SET NOCOUNT 为 OFF 时,返回计数。

但使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数

当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。

如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

结论:我们应该在存储过程的头部加上SET NOCOUNT ON 这样的话,在退出存储过程的时候加上SET NOCOUNT OFF这样的话,以达到优化

为了有更感性的认识,我们在SQL SERVER查询编辑器里走几行sql代码看看。图1.不返回受影响的行数。图2.返回受影响的行数。至于对存储过程能优化多少,那就说不清楚了

sql server 设置SET NOCOUNT_第1张图片 sql server 设置SET NOCOUNT_第2张图片

你可能感兴趣的:(sql,优化,server,Microsoft,delete,存储,insert)