Sql server 如果在t-SQL中的存储过程中不使用SETNOCOUNT ON,最糟糕的情况是什么?
MSDN国家 SET-NOCOUNT ON可防止将DONE_IN_PROC消息发送到 存储过程中每条语句的客户端。对于存储过程 包含几个不返回太多实际数据的语句, 或者,对于包含Transact-SQL循环的过程,请设置SET-NOCOUNT 打开可以显著提高性能,因为网络 交通量大大减少Sql server 如果在t-SQL中的存储过程中不使用SETNOCOUNT ON,最糟糕的情况是什么?,sql-server,nocount,Sql Server,Nocount,MSDN国家 SET-NOCOUNT ON可防止将DONE_IN_PROC消息发送到 存储过程中每条语句的客户端。对于存储过程 包含几个不返回太多实际数据的语句, 或者,对于包含Transact-SQL循环的过程,请设置SET-NOCOUNT 打开可以显著提高性能,因为网络 交通量大大减少 减少网络流量是使用NOCOUNT ON的唯一原因,还是它做了其他任何事情?您不会从该过程中得到受影响的行数 我认为,以及中包含的链接将有所帮助 它在某些情况下帮助了一些开发人员,尤其是在调试时,DBA更是如此
减少网络流量是使用NOCOUNT ON的唯一原因,还是它做了其他任何事情?您不会从该过程中得到受影响的行数 我认为,以及中包含的链接将有所帮助
它在某些情况下帮助了一些开发人员,尤其是在调试时,DBA更是如此 您无法从进程中获得受影响的行数 我认为,以及中包含的链接将有所帮助
它在某些情况下帮助了一些开发人员,尤其是在调试时,DBA更是如此 在旧API的ADO中,在ADO.Net之前,它会对程序返回的内容感到困惑。它会认为受影响的X行就是您要查找的结果集。它将返回该值,而不是您选择的任何值
不过,这似乎不再是一个问题。在旧API的ADO中,在ADO.Net之前,它会对从进程返回的内容感到困惑。它会认为受影响的X行就是您要查找的结果集。它将返回该值,而不是您选择的任何值
不过,这似乎不再是一个问题。在许多地方,您不希望从存储的进程中获得任何输出。例如,一个使用临时表的存储过程,然后一个最终选择将显示每个部分受影响的行数,如果它依赖于存储过程的返回,那么这可能会破坏对存储过程的调用。正如其他答案所说,这可能是一些调用库的问题 当然,这也是一个存在循环的问题,因为对于某些写得不好的过程,最终可能会产生数千个计数 因此,作为回答,您可能会发现您需要打开NOCOUNT,或者您可能需要为大多数例程设置NOCOUNT,但在您的最终查询之前关闭它,或者您可以不使用它
大多数情况下,这不是一个问题,但如果事情不正常,请注意这可能是问题的根源。在许多地方,您不希望存储过程有任何输出。例如,一个使用临时表的存储过程,然后一个最终选择将显示每个部分受影响的行数,如果它依赖于存储过程的返回,那么这可能会破坏对存储过程的调用。正如其他答案所说,这可能是一些调用库的问题 当然,这也是一个存在循环的问题,因为对于某些写得不好的过程,最终可能会产生数千个计数 因此,作为回答,您可能会发现您需要打开NOCOUNT,或者您可能需要为大多数例程设置NOCOUNT,但在您的最终查询之前关闭它,或者您可以不使用它 大多数情况下,这不是一个问题,但要注意,如果事情不正常,这可能是问题的根源。可能的重复