【问题标题】:Is it safe to insert into crm database using sql?使用sql插入crm数据库是否安全?
【发布时间】:2012-12-24 11:16:27
【问题描述】:

我们需要将数据(8k records)插入到CRM Entity,数据将来自其他CRM Entities。目前我们正在通过代码来做这件事,但这需要太多时间(Hours)。我想知道我们是否使用SQL 直接插入CRM Database 会容易得多,并且只需要几分钟。但在继续前进之前我有几个问题

  1. 使用 SQL 直接插入 CRM 数据库是否安全?

  2. 使用 SQL 将数据插入 CRM 的最佳做法是什么?

  3. 在尝试之前我应该​​考虑什么?

编辑:

4:如何提高插入性能?

【问题讨论】:

  • 您要插入多少条记录需要几个小时?
  • 一些 8k 记录。还涉及其他一些步骤,例如检查记录是否不存在!

标签: sql dynamics-crm-2011 dynamics-crm


【解决方案1】:

我没有使用您所指的CRM application,但是如果您绕过代码,您可能会绕过某些限制,甚至触发代码基于发送的某些值而存在的位置。

例如,如果您通过代码发送了一个数字,它可能会对该数字执行一些数学函数并将其添加到某个其他值并最终在数据库中存储两个值(您输入的数字的一个值,和另一个代表总数的值,包括新添加的)。

因此,如果您只是将一个值直接插入到数据库中,那么总数将不会随之更新。

这只是一个假设的场景。您可能不会遇到任何类似的问题或其他任何问题,但可能会有机会。

【讨论】:

    【解决方案2】:
    1. 不,不是。被认为是unsupported
    2. 不要这样做
    3. Rollup 12 刚刚发布,包含一个新的 API 功能。现在有一个ExecuteMultipleRequest 可用于批量导入。见http://msdn.microsoft.com/en-us/library/jj863631.aspx

    【讨论】:

    • 我不知道 ExecuteMultipleRequest。我期待着使用它。
    • @Daryl 它刚刚发布了最新的 SDK 和 Rollup 12
    【解决方案3】:

    我发现this article 很有帮助。 上面写着

    不支持直接 SQL 写入 CRM 数据库。原因是在 CRM 数据库中创建记录不仅仅是INSERT INTO…-statement。优化的第一步是了解幕后发生的事情并可能影响速度:

    1. CRM 实体通常由 2 个物理表组成。

    2. 级联规则/共享:如果创建的记录与 级联规则,Web 服务将自动处理级联。 例如级联共享将导致额外的记录 在 PrincipalObjectAccess 表中创建。一次性的情况下 迁移,在迁移运行时禁用级联规则可以 节省大量时间

    3. 记录所有权:如果您要插入记录,请确保您是 将所有者设置为创建的属性,而不是 额外的所有者分配请求。分配所有者实际上需要

    4. 金钱/时间:网络服务处理货币和时区。

    5. 工作流程/插件:如果系统有任何自定义工作流程和/或 插件,我强烈建议在 迁移。

    【讨论】:

      【解决方案4】:

      插入 8000 条记录不应花费数小时。查看您的代码会有所帮助,但为了提高性能,需要考虑以下几点:

      1. 重用您的 IOrganizationService。通过重用 IOrganizationService,而不是为每条正在更新的记录创建一个新记录,我发现性能提高了 10 倍
      2. 使用多线程。你必须小心这个,因为如果检查现有实体的功能是你的瓶颈,它可能会导致性能下降。
      3. 调整您的存在函数。如果检查存在的实体需要很长时间,请考虑拉回整个表并将其存储在内存中(假设它不是大得离谱)。这将删除 8000 个单独的选择语句。
      4. 关闭可能会降低性能的插件。如果您在实体上注册了任何插件,请查看在导入期间禁用它们是否会提高性能。
      5. 创建一个新的“如何提高插入性能”问题,并发布您的代码以获得更多帮助。

      【讨论】:

      • 谢谢!你的回答很有用。
      猜你喜欢
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多