Sql server “使用”的好处是什么;设置“不计数”;在存储过程中';ssis包中使用了哪些?

Sql server “使用”的好处是什么;设置“不计数”;在存储过程中';ssis包中使用了哪些?,sql-server,sql-server-2008,tsql,ssis,Sql Server,Sql Server 2008,Tsql,Ssis,在介绍SQL Server的性能调优概念时,我发现存储过程在起始行中使用了SET NOCOUNT ON,在最后一行中再次将其设置回SET NOCOUNT OFF,这将有助于提高性能 我这里的问题是:在将存储过程与SSIS包一起使用时,这将有什么帮助 SET NOCOUNT ON可防止为存储过程中的每个语句向客户端发送DONE_IN_PROC消息。对于包含多个不返回太多实际数据的语句的存储过程,或者对于包含Transact-SQL循环的过程,将SET NOCOUNT设置为ON可以显著提高性能,因为

在介绍SQL Server的性能调优概念时,我发现存储过程在起始行中使用了
SET NOCOUNT ON
,在最后一行中再次将其设置回
SET NOCOUNT OFF
,这将有助于提高性能

我这里的问题是:在将存储过程与SSIS包一起使用时,这将有什么帮助

SET NOCOUNT ON可防止为存储过程中的每个语句向客户端发送DONE_IN_PROC消息。对于包含多个不返回太多实际数据的语句的存储过程,或者对于包含Transact-SQL循环的过程,将SET NOCOUNT设置为ON可以显著提高性能,因为网络流量大大减少


Source BOL:

SET NOCOUNT ON是一个SET语句,它阻止显示受T-SQL查询语句影响的行数的消息。这在存储过程和触发器中使用,以避免显示受影响的行消息。在存储过程中使用SETNOCOUNT ON可以显著提高存储过程的性能

SET NOCOUNT ON:这将阻止消息显示包含受影响行数的消息。
SET NOCOUNT OFF:这显示消息窗口中受影响的行数。

重要的是有点复杂stretch@Paparazzi不,不是。没有返回值的调用意味着没有理由为其使用缓冲区或通过网络发送任何内容。数据库意味着要处理成千上万的请求和一些小的改进up@PanagiotisKanavos在进程中消除一个已完成的任务是一项重要任务吗?你需要升级你的调制解调器。@Papazzi我认为你没有抓住要点,或者你没有理解可伸缩性是关于延迟和往返,而不是带宽。这就是为什么批处理语句比执行单个语句更快的原因。也许你应该检查一下,尤其是#2和#7@PanagiotisKanavos我需要学习吗?存储过程是一个批处理过程,发送DONE_IN_PROC消息不是一个往返过程。请不要只是从internet复制粘贴内容。