【发布时间】:2016-01-25 14:38:22
【问题描述】:
我正在使用 SSIS 将数据从现有数据库移动到 MDS 数据库。 我正在遵循以下控制流程;
- 截断 TableName_Leaf
- 加载数据到stg
第二步有如下数据流:
1. 从源数据库加载数据(大约有 90000 条记录)
2. 应用数据转换任务将字符串数据类型转换为Unicode(因为MDS只支持Unicode)
3. 将 TableName_Leaf 指定为 OLE DB 目标。
第 1 步和第 2 步很快完成,但插入到 Leaf 表的速度非常慢。 (端到端移动 100 行需要 40 秒,移动 1000 条记录大约需要 6 分钟。)
我尝试从 Leaf 表中删除额外的约束,但这也没有提高性能。
还有其他更快或更好的方式将数据插入到 MDS 中吗?
【问题讨论】:
-
删除所有索引\约束\pks,然后进行插入(BULK INSERT),它应该会快很多。
-
我删除了约束和索引。我们究竟在哪里将插入指定为批量插入?
-
要更正式地重申 sagi 所说的话,请阅读 MSDN 文章“Optimizing Bulk Import Performance”及其子文章以了解许多技巧(包括禁用/删除索引和约束)。
-
这行得通。谢谢你。 :)
-
没问题,只是好奇,批量插入需要多少时间?
标签: sql sql-server master-data-services master-data-management