【问题标题】:Insertion in Leaf table in SQL Server MDS is very slow在 SQL Server MDS 中的叶表中插入非常慢
【发布时间】:2016-01-25 14:38:22
【问题描述】:

我正在使用 SSIS 将数据从现有数据库移动到 MDS 数据库。 我正在遵循以下控制流程;

  1. 截断 TableName_Leaf
  2. 加载数据到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


【解决方案1】:

在 OLE DB 目标连接中使用 表或视图 - 快速加载。 有助于解决问题。我的案例使用了 1000 的批量大小,效果很好。

【讨论】:

    猜你喜欢
    • 2018-03-15
    • 2012-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2013-04-05
    • 2018-05-18
    • 2023-04-02
    相关资源
    最近更新 更多