有时我们会遇到 SQL Server 上无限期挂起的查询。此查询是从单独的 ColdFusion Web 服务器调用的。
如果我在挂起时运行分析器,我只会看到锁被一遍又一遍地分配和释放。当此查询挂起时,此数据库上的所有其他查询都运行正常。
奇怪的是,我可以从 SSMS 运行查询,并且它在几秒钟内运行(即使应用程序查询挂起)。
到目前为止我发现的唯一解决方案是备份数据库然后恢复数据库。这可以立即解决问题。
有任何线索知道发生了什么事吗?
提前致谢!
答案1
当然,停止和启动 SQL Server 服务比执行备份和恢复操作更方便。
当查询处于“挂起”状态时,通过查询分析器查看 GUI 中的活动监视器或 sp_who2。您应该能够识别该进程 - 查看它在等待什么,或者它是否被阻止。重复此操作以查看 CPU/IO 是否正在运行。
还要检查 SQL 和 NT 日志,寻找发生的情况的任何线索。
我建议将这一切作为第一步。
答案2
您可以检查阻塞进程报告来查看您的查询是否被其他进程锁定。
查看这鏈出。