在工作中我遇到了一个我一直在努力的网站的问题,这让我有点难过。它是在Windows Server 2003上的IIS6上运行的Microsoft MVC 2站点,针对不同服务器上的SQL Server数据库。
这个问题在尝试登录时表现为极端缓慢,我写了一个快速脚本来调用页面登录100次,时间在3秒到14秒之间变化,但它相当不稳定。
我在执行登录时运行了sql profiler,行为是你会点击提交,一秒或者也会通过,你会看到sql profiler记录连接然后以毫秒为单位执行sql然后一对在重定向之前传递更多秒数。
作为一项完整性检查,我们部署到我们也可以访问的云托管服务上的另一台服务器上,并且该网站执行速度很快,相同的登录脚本x100完整请求始终需要1-2秒。
只是为了贯穿我们排除的所有内容:
这不是服务器硬件,因为处理器和内存使用几乎没有。 连接到Sql Server后的带宽不是顺序执行的脚本非常快。 这不是Sql正在执行或任何索引问题,sql执行得非常快。
在这个阶段,感觉问题是应用程序如何打开和关闭与sql server的初始连接。就像服务器之间的握手一直占用一样,因为一旦连接,与数据库的交互非常快。
我只是无法弄清楚这台服务器与运行良好的云服务器之间的区别是什么。
我非常感谢您对我可以执行的任何工具或测试的建议。
感谢。
答案 0 :(得分:1)
尝试使用类似Red Gate Ants Profiler的内容 - 它会显示所有托管代码的时间(甚至是您没有源代码的框架内容 - 只需确保选择过滤器来显示它)。 (试验应该正常)。
这可以让您了解是否在管理方花费了时间。如果不是,那么追踪会更难,但这里有一些想法:
希望这有帮助