Table 的 SSIS 数据流文件加载非常缓慢
SSIS DataFlow File to Table Loading Very Slowly
我遇到了 SSIS 数据流问题。我只是想将平面文件加载到 table。从具有 6 列和 2600 行的小文件加载到完全相同的 table 是非常简单的。没有转换,直接到 table.
问题是,数据流加载文件需要 6 分钟。如果我用 SQL 服务器文件导入器导入它,只需要几秒钟。
为了进行故障排除,我尝试将数据流上的 延迟验证设置为 true。我已将平面文件源和 OLE DB 目标 ValidateExternalMetadata 设置为 false。我什至尝试将 数据流事务 属性 从 Serializable 设置为 Read Committed 和 Read Uncommitted.
在执行日志中,我只看到一个警告,没有错误。警告是:
[SSIS.Pipeline] Warning: Warning: Could not open global shared memory
to communicate with performance DLL; data flow performance counters
are not available. To resolve, run this package as an administrator,
or on the system's console.
我读到的有关此警告的任何内容都表明它会影响性能。今天晚些时候,当 DBA 可用时,我将尝试 运行 作为管理员。
有趣的是,它似乎立即将行发送到缓冲区,但在 6 分钟内没有将它们写入 table。请参阅下面的屏幕截图。
如果你想防止出现这个警告,你可以将用于执行程序包的用户帐户(例如你的帐户and/or SQL Server Agent 帐户)添加到本地组“性能监视器用户”。
如果对任何服务进行此更改,例如SQL服务器代理,需要重新启动服务才能使更改生效。
您是否尝试过在 target! 中使用 fastload 选项? .
它是目标中可用的数据访问模式 属性。尝试将其设置为 Table 或查看 - 快速加载。它会解决问题。
我遇到了 SSIS 数据流问题。我只是想将平面文件加载到 table。从具有 6 列和 2600 行的小文件加载到完全相同的 table 是非常简单的。没有转换,直接到 table.
问题是,数据流加载文件需要 6 分钟。如果我用 SQL 服务器文件导入器导入它,只需要几秒钟。
为了进行故障排除,我尝试将数据流上的 延迟验证设置为 true。我已将平面文件源和 OLE DB 目标 ValidateExternalMetadata 设置为 false。我什至尝试将 数据流事务 属性 从 Serializable 设置为 Read Committed 和 Read Uncommitted.
在执行日志中,我只看到一个警告,没有错误。警告是:
[SSIS.Pipeline] Warning: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console.
我读到的有关此警告的任何内容都表明它会影响性能。今天晚些时候,当 DBA 可用时,我将尝试 运行 作为管理员。
有趣的是,它似乎立即将行发送到缓冲区,但在 6 分钟内没有将它们写入 table。请参阅下面的屏幕截图。
如果你想防止出现这个警告,你可以将用于执行程序包的用户帐户(例如你的帐户and/or SQL Server Agent 帐户)添加到本地组“性能监视器用户”。
如果对任何服务进行此更改,例如SQL服务器代理,需要重新启动服务才能使更改生效。
您是否尝试过在 target! 中使用 fastload 选项? . 它是目标中可用的数据访问模式 属性。尝试将其设置为 Table 或查看 - 快速加载。它会解决问题。