Kyl*_*Ren 7 c# sql-server ado.net
我有两个DataBases(DB1&DB2:两个DB都是相同的,DB2是从备份中创建的DB1).当我SP1在两者上运行存储过程时DBs,大约需要2秒才能给出select两个输出(语句)DBs.
现在的问题是,当我DBs从一个service并尝试使用DataAdapter.Fill方法指出这些时,它给我不同的时间(54-63秒开启DB1和42-44秒开启DB2)两者DBs一致.注意到我使用相同的服务来指出DBs它不能是服务行为/性能.现在我的问题是:
这可能是什么原因?欢迎提出任何建议,我应该研究什么?
帮助信息:
两个数据库都处于不同的
servers(相同的配置),但由于执行SP打开SQL Server Management Studio时间相同,DBs因此我排除了DBserver性能的可能性.网络延迟可能是一个因素但是极不可能,因为两者servers都在同一网络上并且实际上位于同一物理位置.这是我最后检查的选项.其他一些服务正在使用
SQLDependencyONDB1.这一直在填补DataAdapter(s),这可能是我的DataAdapterfill方法减慢的原因 吗?(我猜不太可能)
根据以下评论的要求,代码填写了DataSet:
PS:上面提到的时间是上图中突出显示的代码行的执行时间.
这听起来很像查询计划问题。
Erland Sommerskog 写了一篇关于此类问题的优秀文章, Slow in the Application, Fast in SSMS? 。
我的第一个猜测是“默认设置”,但这也可能是其他问题之一。