什么会导致在 Management Studio 中执行的查询被暂停?
- 我从一个表(有 1100 万行)中执行一个简单的 select top 60000,结果在一两秒内返回。
- 我将查询更改为前 70000,结果最多需要 40 分钟。
通过对另一个但相关的问题进行一些搜索,我发现有人使用 DBCC FREEPROCCACHE 来修复它。
- 我运行 DBCC FREEPROCCACHE,然后重做 70000 的查询,它似乎工作。
但是,使用不同的查询仍然会出现此问题。
- 我增加说 90000 或者如果我尝试使用 [Right->Open Table] 打开表,它会提取大约 8000 条记录并停止。
在我执行 Open Table 时检查活动日志显示会话已暂停,等待类型为“Async_Network_IO”。对于运行选择 90000 的会话,状态为“睡眠”,这与上述选择 70000 查询的状态相同,但在 45 分钟内返回。令我感到奇怪的是,状态显示为“正在睡觉”,而且它似乎没有变为“可运行”(我让活动监视器每 30 秒刷新一次)。
补充笔记:
- 我没有同时运行 Open Table 和选择 90000。所有查询一次完成一个。
- 我正在运行 32 位 SQL Server 2005 SP2 CU9。我尝试升级到 SP3,但遇到了安装失败。在我尝试此升级之前就出现了这些问题。
- 服务器设置是一个 Active/Active 集群,问题发生在任一节点上,而另一个实例没有此问题。
- 我在同一个服务器实例上有大约 20 个其他数据库,但只有这个数据库看到了这个问题。
- 这个数据库变得相当大。目前为 76756.19MB。数据文件为 11,513MB。
- 我使用远程桌面在服务器框本地登录。