Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 通过删除打印语句优化sql server性能_Sql Server_Performance_Optimization_Printing - Fatal编程技术网

Sql server 通过删除打印语句优化sql server性能

Sql server 通过删除打印语句优化sql server性能,sql-server,performance,optimization,printing,Sql Server,Performance,Optimization,Printing,我们正在进行一轮sql server存储过程优化。我们发现的一个明显适用于我们的建议是在每个程序的顶部设置NOCOUNT ON。(是的,我看过一些文章指出了这方面的问题,这取决于运行存储过程的客户机对象,但这些不是我们的问题。) 所以现在我只是想补充一点常识。如果将NOCOUNT设置为ON的好处只是每次减少少量网络流量,那么关闭存储过程中所有仅用于调试的打印语句是否也有意义 我看不出这会如何影响表演。OTOH,实现起来有点麻烦,因为有些print语句是else子句中唯一的内容,所以不能总是注释掉

我们正在进行一轮sql server存储过程优化。我们发现的一个明显适用于我们的建议是在每个程序的顶部设置NOCOUNT ON。(是的,我看过一些文章指出了这方面的问题,这取决于运行存储过程的客户机对象,但这些不是我们的问题。)

所以现在我只是想补充一点常识。如果将NOCOUNT设置为ON的好处只是每次减少少量网络流量,那么关闭存储过程中所有仅用于调试的打印语句是否也有意义

我看不出这会如何影响表演。OTOH,实现起来有点麻烦,因为有些print语句是else子句中唯一的内容,所以不能总是注释掉一行就完成了。这种改变会带来一定的风险,所以如果它实际上没有帮助的话,我不想这么做


但是我没有看到在关于优化的文章中提到的删除打印语句。这是因为很明显没有人愿意提及它吗?

如果你在循环中调用PRINT(比如在行中剪切时打印),那么是的,你可以节省时间,如果你在足够多的记录中循环,这可能非常重要。简而言之,除非您的存储过程本身在循环中被重复调用,否则我不会亲自将PRINT语句留在那里。对于小字符串,它们的性能通常可以忽略不计。

我在存储过程中打印大量诊断数据时遇到问题,从ADO.NET调用时导致错误(直接调用时没有错误)。不幸的是,我回忆不起这个错误,但我添加了一个标志,以便将诊断消息包装在条件中,以避免它们在生产中发出