我有一个 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 值放入条件拆分组件
Default
SKU % 4 < 1
SKU % 4 < 2
SKU % 4 < 3
每个输出条件都有一个不同的 SQL Server 目标,我什至已经为每个目标创建了不同的连接管理器。
这些似乎都没有对性能产生任何明显影响。
这是源连接管理器
这是我的源对象属性。
这是目的地的连接管理器
这是我的目标对象属性。
我怎样才能加快速度?
编辑
根据 Lamak 的建议,我尝试使用 OLE DB 目标而不是 SQL Server 目标。随着时间的推移,这似乎具有相同的速度结果和减速。