这很奇怪,但我希望有人能帮助我解决问题。 我有一个存储过程调用,从ODBC连接的应用程序中调用需要约42秒才能运行。 但是,如果我在SSMS(Sql Server Management Studio)中运行相同的调用,它只需要10或15秒钟才能执行...如跟踪记录的那样。 这似乎不是网络问题。 我只向客户端传递大约1200条记录 - 无论如何,我给出的时间都来自跟踪持续时间字段...因此,当通过ODBC调用完成相同的调用时,SQL Server处理所需的时间要长3或4倍。 我可以一遍又一遍地重现这个问题。 更有趣的是,从跟踪中获取的读取和写入(来自ODBC调用)稍微高一些,但CPU使用率比SSMS调用高3或4倍。 在同一过程中还有其他存储过程被调用,它们似乎没有以同样的方式受到影响...或者至少没有受到同样程度的影响。 我们正在使用SQL Server 2005。 关于这里发生了什么,有什么想法吗?
set
选项,这意味着它不会共享来自其他连接的计划,而是会生成一个新的计划,该计划可能更适合该参数集。 - Martin Smith