SQL 服务器实例随机挂起

SQL server Instance hanging randomly

我有一个 SQL 服务器代理作业 运行 每 5 分钟使用 SSIS 目录中的 SSIS 包,该包做:

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

问题

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

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

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

我做了什么

我的设置:

注:

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

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

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

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

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

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

正如@Jeroen Mostert 和@Danielle Paquette-Harvey 所说,通过使用 activity 监视器进行右键单击,我发现我有一个并行执行的对象(过去出于某种原因) ),为了解决这个问题,我删除了并行结构并将所有内容一次性放入 运行。 现在它就像一个魅力!

之前:

之后: