首页 > 解决方案 > SQL server 实例随机挂起

问题描述

我有一个 SQL Server 代理作业,使用 SSIS 目录中的 SSIS 包每 5 分钟运行一次,该包执行以下操作:

  1. 删除 OLTP_DB 上的所有现有数据
  2. 从生产数据库中提取数据
  3. 删除 OLAP_DB 上的所有现有数据,然后
  4. 提取从 OLTP_DB 转换为 OLAP_DB 的数据 ...

问题

我上面提到的那个工作由于某种我不知道的原因随机挂起,我只是意识到使用活动监视器,每次挂起它都会显示如下内容:

在此处输入图像描述

如果我尝试对该数据库运行任何查询,它不会响应只是说正在执行......并且在我停止工作之前没有任何反应。

该作业的平均运行时间为 5 或 6 分钟,但当它挂起时,如果我不停止它,它可以持续运行数天。:(

我做了什么

我的设置:

笔记:

我还有另一项工作在同一个实例但不同的数据库中运行一个 ssis 包(小),当上面提到的主要 ETL 挂起时,有时这个小 ETL 有时,这就是为什么我认为问题出在实例上(我猜)。

我愿意根据需要提供更多信息。

任何帮助或帮助将不胜感激!

标签: sql-servertsqlssissql-server-2014

解决方案


正如 Joeren Mostert 所说,它正在显示 CXPACKET,这意味着它正在并行执行一些工作。( cxpacket ) 它还显示 ASYNC_NETWORK_IO ( async_network_io ),这意味着它也在向网络传输数据。

可能有很多原因。还有一些提示:
- 您是否检查过网络连接是否缓慢?
- 传输的数据大小与网络速度的关系是多少?
- 是否有正在运行的防病毒软件会减慢数据传输速度?

我的猜测是要传输大量数据并且需要很长时间。我会考虑 I/O 或网络,但由于您有一个 asyn_network_io 占用了大部分累积等待时间,所以我会选择网络。


推荐阅读