我目前在Win2k8服务器上的DotNetNuke SQL Server 2005 Express网站上遇到了一些问题。它大部分时间都能顺利运行。然而,偶尔(每小时订购一次或两次)确实运行得非常慢 - 从用户的角度来看,这种情况几乎就像某些描述的死锁一样。
要尝试解决问题所在,我已针对SQL Express数据库运行SQL事件探查器。
查看结果,我遇到的一些具体问题是:
SQL跟踪显示每个RPC的审核登录和审核注销:已完成 - 这是否意味着连接池无效?
当我在“.NET CLR数据”中查看性能监视器时,没有任何“SQL客户端”计数器有任何实例 - 这只是SQL Express缺乏功能性问题还是它建议我有什么错误的配置吗?
发生缓慢时运行的查询似乎并不常见 - 它们在其他时间运行得很快。您可以建议使用哪些其他perfmon计数器或其他跟踪/日志文件作为我进一步调查的有用工具。
答案 0 :(得分:2)
直接跳转到Profiler可能是错误的第一步。首先,尝试检查服务器上的Perfmon统计信息。我在这里有一个在线教程:
http://www.brentozar.com/perfmon
开始捕获这些指标,然后在经历其中一个减速后,停止收集。查看那个时间周围的性能指标,瓶颈会显示出来。如果你想通过brento@brentozar.com向我发送来自Perfmon的csv输出,我可以给你一些关于发生了什么的见解。
之后您可能仍需要运行Profiler,但我先排除操作系统和硬件。此外,只是一个想法 - 你检查了服务器的系统和应用程序事件日志,以确保在这些时间没有发生任何事情?我见过防病毒客户端经常下载新补丁的情况,并在每次更新后进行轻度扫描。
答案 1 :(得分:1)
我的蜘蛛侠意识告诉我你可能有SQL Server阻塞问题。阅读this article以帮助您监控服务器上的阻止,以检查其原因。
如果您认为问题可能与性能有关并且想要了解您的硬件瓶颈是什么,那么您应该使用perfmon收集一些cpu,磁盘和内存统计信息,然后使用您的探查器跟踪收集co-relate them以查看是否缓慢的反应是相关的。
答案 2 :(得分:0)
答案 3 :(得分:0)
要检查的其他一些事项:
确保您的数据文件或日志文件 没有自动扩展。
确保您的防病毒设置为 忽略你的sql数据和日志 文件。
查看探查器输出时,请务必检查目标之前完成的查询, 他们本来可以阻止。
确保您已关闭数据库上的自动关闭功能;关闭后重新开放需要一些 时间。