DataAdapter.Fill性能异常

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秒开启DB142-44秒开启DB2)两者DBs一致.注意到我使用相同的服务来指出DBs它不能是服务行为/性能.现在我的问题是:

这可能是什么原因?欢迎提出任何建议,我应该研究什么?

帮助信息:

  1. 两个数据库都处于不同的servers(相同的配置),但由于执行SP打开SQL Server Management Studio时间相同,DBs因此我排除了DB server性能的可能性.网络延迟可能是一个因素但是极不可能,因为两者servers 都在同一网络上并且实际上位于同一物理位置.这是我最后检查的选项.

  2. 其他一些服务正在使用SQLDependencyON DB1.这一直在填补DataAdapter(s),这可能是我的DataAdapter fill方法减慢的原因 吗?(我猜不太可能)

根据以下评论的要求,代码填写了DataSet:

DataSet填充

PS:上面提到的时间是上图中突出显示的代码行的执行时间.

TTo*_*oni 1

这听起来很像查询计划问题。

Erland Sommerskog 写了一篇关于此类问题的优秀文章, Slow in the Application, Fast in SSMS?

我的第一个猜测是“默认设置”,但这也可能是其他问题之一。