【问题标题】:Yellow on the control flow - No Color within the data flow; What's going on?控制流上的黄色 - 数据流中没有颜色;这是怎么回事?
【发布时间】:2012-02-27 22:08:29
【问题描述】:

正如问题所暗示的,我正在关注一个具有多个控制流元素的转换,其中许多是数据流。

目前,控制流选项卡中的一个数据流对象以黄色点亮。当我通过双击或选择“数据流”选项卡打开该数据流对象时,没有任何颜色的框亮起。

这会让我相信它正在验证,也许?

有什么方法可以说明它在做什么,以及有什么步骤可以帮助加快这个过程吗?

**编辑:

我查看了执行,看起来它卡在 50% 左右的 Pre-Execute 阶段。此阶段是否有任何优化。

未运行的数据流的屏幕截图。 (这是在控制流将此数据流任务显示为黄色时拍摄的)

【问题讨论】:

  • 您的数据流在做什么?你的包里有查找吗?如果是这样,包很可能正在缓存数据的过程中。多少数据? 所有数据,因此如果您仅选择表名作为查找或从所述表中选择等效的SELECT *,则所有数据必须在开始处理之前通过网络流式传输到 SSIS 引擎。如果你真的想知道,打开你的包登录。
  • 它似乎卡在了预执行阶段。在此阶段执行哪些类型的任务?我将尝试添加一些日志记录,或许还可以进行分析以尝试缩小问题范围。
  • 有没有机会弹出数据流的截图?了解 DF 应该做什么会很有帮助。
  • 添加了截图。我猜下一步将是获取这些块中的每一个并将它们放入自己的数据流任务中以隔离问题。
  • 我同意这一点。尽管导入/导出向导做了什么,但我从来都不喜欢在数据流中使用不相关的路由——如果它们不相遇,它们就会进入单独的 DF。

标签: sql-server ssis ssis-2008


【解决方案1】:

当您进入包的配置属性并选择“调试属性”时,它是否设置为在“优化”模式下运行?如果是这样,它将是黄色的,然后在完成后变为绿色/红色。您需要确保“优化运行”处于关闭状态并且“交互模式”为真。

【讨论】:

  • 一个好主意,但是“RunInOptomizedMode”设置为 False,“InteractiveMode”设置为 True。
  • 它会变成绿色/红色或挂起黄色吗?
  • 它是黄色的。我编辑了这个问题,它看起来像挂在 Pre-Execute 阶段。
【解决方案2】:

如果您要查找的只是为什么它是黄色的,请查看错误列表窗口并在需要时单击警告以使其可见。这至少应该确认它是否只是验证,还是其他什么。

【讨论】:

    【解决方案3】:

    刚刚在 SSIS 包中遇到了类似的数据流问题。无论它必须传输多少行,在复制所有行之后,任务仍然是黄色的,并且目标表中没有数据(MS SQL Server 2012)。我可以通过删除目标表并再次发出 CREATE TABLE/CREATE INDEX 来解决此问题。

    【讨论】:

      【解决方案4】:

      我将这些块中的每一个分解成它们自己的 DF。其中一个 DF 继续卡在 Pre-Execute 阶段。我对该 OLE DB 源运行了查询,并发现由于一些删除的索引而导致长时间运行的查询。替换了索引,变换停止挂起。

      【讨论】:

        【解决方案5】:

        另一个潜在的解决方案(对于像我这样将来遇到这个问题的人)是确保组件不使用内部事务。

        今天早上我遇到了这种情况(数据流中的所有任务都是绿色的,但在控制流中显示为黄色),其中一个包进行了批量更新。我使用的组件有一个用于打开内部事务的复选框,该事务在允许数据流完成之前等待 SQL Server 的响应。

        寻找一个复选框来关闭内部事务或表锁,然后在没有它的情况下重新运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-04
          • 2021-07-07
          • 2021-04-01
          • 1970-01-01
          • 2013-05-15
          • 2021-01-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多