我有以下情况:
在部署数据库后,我们有一台.Net应用程序服务器正在尝试执行存储过程。
应用程序超时为30秒。当应用程序首次尝试执行存储的proc时,会尝试创建一个新的查询计划,但这需要30秒钟以上的时间,并且该应用程序有很多超时。我的经验是,如果存储过程在第一次运行时从SSMS手动运行(带有代表性的数据输入),则大约需要1-2分钟,这会生成一个计划,然后应用程序可以平稳运行。
我与第三方公司合作,那里的DBA声称以下几点:
“ 手动调用此存储过程将创建一个特定于所使用的连接属性(SSMS)的计划,当应用程序服务器调用该过程时,将不使用生成的计划。”
这是正确的吗?如果使用的查询计划链接到连接属性,这似乎是一个糟糕的设计?如果您在SSMS中手动运行存储过程所创建的查询计划与由应用程序执行时所创建的查询计划之间有区别?
如果是这样,解决此问题的最佳方法是什么?增加超时是唯一的选择吗?