【问题标题】:SSIS DataFlow File to Table Loading Very SlowlySSIS DataFlow 文件到表加载非常缓慢
【发布时间】:2021-05-21 13:16:41
【问题描述】:

我遇到了 SSIS 数据流问题。我只是想将平面文件加载到表中。从一个 6 列 2600 行的小文件加载到一个完全相同的表是非常简单的。没有转型,直接上桌。

问题是,对于数据流,加载文件需要 6 分钟。如果我用 SQL Server 文件导入器导入它,只需要几秒钟。

为了解决问题,我尝试在数据流上将延迟验证设置为 true。我已在平面文件源和 OLE DB 目标上将 ValidateExternalMetadata 设置为 false。我什至尝试将 Data Flow Transactions 属性从 Serializable 设置为 Read Committed 和 Read Uncommitted

在执行日志中,我只看到一个警告并且没有错误。警告是:

[SSIS.Pipeline] 警告:警告:无法打开全局共享内存 与性能 DLL 通信;数据流性能计数器 不可用。要解决,请以管理员身份运行此包, 或在系统的控制台上。

我所读到的有关此警告的任何信息都不会表明它会影响性能。今天晚些时候,我将尝试在 DBA 可用时以管理员身份运行它。

有趣的是,它看起来像是立即将行发送到缓冲区,但在 6 分钟内没有将它们写入表。请参阅下面的屏幕截图。

【问题讨论】:

    标签: sql-server ssis sql-server-2016


    【解决方案1】:

    您是否尝试在目标中使用快速加载选项!? . 它是目标中可用的数据访问模式的属性。尝试将其设置为表格或查看 - 快速加载。它会解决这个问题。

    【讨论】:

    • 你是个天才。我不敢相信我没有抓住那个。通常它是默认的,所以我不想看。非常感谢!!!
    【解决方案2】:

    如果您想防止出现此警告,您可以将用于执行包的用户帐户(例如您的帐户和/或 SQL Server 代理帐户)添加到本地组“Performance Monitor Users”中。

    如果对任何服务进行此更改,例如SQL Server 代理,需要重新启动服务才能使更改生效。

    【讨论】:

    • 谢谢。我会尝试这样做,但并不太担心错误。只是想知道它是否相关。
    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多