为什么SQL Server限制来自/从一个数据库从IIS的速度

我有麻烦与SQL服务器(或IIS,但我非常确定其SQL)

我之前已经发布了一个更模糊的问题,但是它仍然在发生,我还有一些更详细的信息。

上一篇文章

问题:当IIS网站尝试访问它时,SQL Server 2008r2到网站(iis 7)似乎限制了数据传输速度。 速度似乎被限制在每秒1Mb。

如果我重新启动数据库服务,或使数据库脱机,这将自行修复,但我宁愿不必每周都这样做。

一些故障排除:

  • 来自同一台机器的文件传输很好,所以我不认为它的networking
  • 我可以从我的本地SQLpipe理工作室连接,并查询相同的数据库罚款
  • 与SQL服务器相同的IIS服务器上的其他网站不会与其他数据库交谈
  • 指出我们的开发服务器到现场麻烦的数据库有相同的问题
  • 拿一个数据库的副本,把它放在另一个SQL没有问题

所以,我认为我已经削减到一个SQL内的数据库似乎有间歇性的麻烦,将数据传输到IIS。

  • 任何想法是什么会造成这个?
  • 为什么在正常工作几天后会发生这种情况?
  • 我在哪里可以开始解决问题?

编辑1:新的信息我已经做了一些更多的testing,似乎它是一个特定的存储过程,有时只有使用10%的networking速度。

当我摆弄SP的时候,除了“调整”之外别无他法,似乎突破了瓶颈,从而又开始正常工作。

帮助,这让我疯狂!

谢谢

指出我们的开发服务器到现场麻烦的数据库有相同的问题

这表明这一个特定的Web应用程序的问题,因为你说其他的Web应用程序没有这个问题。 除非其他networking应用程序使用完全不同的数据库数据,否则性能至less应该可比。

你想要做的是在数据库上运行一个服务器端的跟踪,并且只捕获来自该服务器的每个SQL调用的持续时间和行集大小 – 可能来自另一台服务器进行比较。

然后,您可以将这与针对SQL Server和IIS计算机的perfmon捕获数据进行比较 – 是的,SQL Server Profiler完全支持此场景:)

这将产生你放入的所有数据的缩放,滚动和可点击的图表; 有关如何设置的详细信息,请参阅SQL Server Profiler帮助(BOL)。

如果这是一个单一的SP似乎是问题,并“调整”似乎解决了这个问题,问题可能是编译的执行计划 – 它可能已编译为一组参数,导致它运行速度较慢对于其他更常见的一组参数。

下一次遇到问题时,请尝试运行dbcc freeproccache并查看是否解决该问题。 如果是这样,你可以添加一个WITH RECOMPILE提示给SP本身来停止被caching的计划。