gpt4 book ai didi

.net - SSIS DataFlow 随着时间的推移显着减慢

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:25 25 4
gpt4 key购买 nike

我有一个 ADO NET Source 组件,它查询一个表以获取所有 700,000 条记录。

这连接到 SQL Server 目标组件。

处理前 100,000 条记录需要 23 秒(+ - 1 秒)。

接下来的 100,000 条记录需要额外的 50 秒。而且只会变得更糟。

下面是具体细节


我已经在目标数据库上尝试了以下三个不同的命令。

ALTER DATABASE AdamDB SET RECOVERY SIMPLE;

ALTER DATABASE AdamDB SET RECOVERY BULK_LOGGED ;

ALTER DATABASE AdamDB SET RECOVERY FULL ;

在所有 3 种情况下,前 100,000 条记录的时间都保持在 23 秒。


我也试过根据 ID 值放入一个 Conditional Split 组件

Default
SKU % 4 < 1
SKU % 4 < 2
SKU % 4 < 3

每个输出条件都有不同的 SQL Server 目标,我什至为每个目标创建了不同的连接管理器。

Conditional Split


这些似乎都没有对性能产生任何明显的影响。

这是源连接管理器

Source Connection Manager

这是我的源对象属性。

Source Object Properties

这是目的地的连接管理器

Destination Connection Manager

这是我的目标对象属性。

Destination Connection Properties



我怎样才能加快速度?

编辑

根据 Lamak 的建议,我尝试使用 OLE DB 目标而不是 SQL Server 目标。随着时间的推移,这似乎具有相同的速度结果和减速。

最佳答案

对于那些可能遇到相同情况的人......这是一个简单的修复,经过一些非常有指导和帮助的评论!

我最终使用了 OLE DB Source 和 OLE DB Destination 对象而不是 ADO 对象。

仅在目标上使用,而源仍然存在 ADO 仍然会产生缓慢的结果。

在源和目标上使用 OLE DB 解决了这个问题。

我现在总共在大约 55 秒内处理了 750,000 条记录!

关于.net - SSIS DataFlow 随着时间的推移显着减慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com