我们在具有 8GB RAM 的 4 核 Xeon 上运行 SQL Server 2008 R2 Standard 安装(其中 sqlserver 可以使用 6GB)。我有一个 VB6 应用程序,它对该数据库中的数据运行查询以生成调查数据报告。这些报告通常需要 7-10 分钟才能制作完成(每个调查约 60 个问题,约 17 个总分,50-500 名受访者)。
然而,突然间,报告开始耗时长达 30 分钟。而且不只是偶尔需要一份报告。整个过程都是如此。速度变慢了。我没有做任何改变。
我尝试寻找锁,但是没有找到。
以下是我的等待统计数据
wait_type waiting_tasks_count wait_time_ms max_wait_time_ms signal_wait_time_ms
------------------------------------------------------------ -------------------- -------------------- -------------------- --------------------
REQUEST_FOR_DEADLOCK_SEARCH 121287 606436183 5107 606436183
SQLTRACE_INCREMENTAL_FLUSH_SLEEP 151607 606430095 4094 0
LAZYWRITER_SLEEP 606582 606429625 1202 320482
XE_TIMER_EVENT 20216 606420962 30058 606420698
LOGMGR_QUEUE 568269 606373068 127733 63394
不知道是否有帮助..
有人知道我应该从哪里开始寻找吗?
答案1
下一步是找出哪些 SQL 查询花费了这么长时间,然后着手优化它们(或优化数据库本身)。
答案2
SQL 2008 性能故障排除指南。它相当冗长,但如果你不知道从哪里开始寻找,这将帮助你有条不紊地缩小范围。