【问题标题】:MS Dynamics CRM 365 (online) - Performance issue inserting custom entity records with ExecuteMultipleRequestMS Dynamics CRM 365(在线) - 使用 ExecuteMultipleRequest 插入自定义实体记录的性能问题
【发布时间】:2017-11-08 15:59:54
【问题描述】:

我正在调用ExecuteMultipleRequest 一次插入自定义实体的 25 条记录。每批大约需要 20 秒。 关于自定义实体的一些信息:

  • 我没有创建它的架构,也无法更改它;
  • 它有124个属性(列);

在每个 CreateRequest 上,实体填充了 6 个属性值:2 个查找和 4 个货币。 ExecuteMultipleRequest 是从公司网络中的中间件组件调用的,该组件连接到云中的 CRM。使用的 CRM 实例是一个沙盒,所以它可能有一些我不知道的限制(CPU/带宽/IO/等)。

我可以发出并发请求,但考虑到每个组织只能有 2 个并发请求 (https://msdn.microsoft.com/en-au/library/jj863631.aspx#limitations),它只会将时间缩短一半。那仍然不是一个可行的时间。 对于创建的每个新的自定义 CRM 流程,我需要在 10 分钟内加载最多 5000 条实体记录。

我可以做些什么来提高这个负载的性能?我应该在哪里看? DataImport (https://msdn.microsoft.com/en-us/library/hh547396.aspx) 会比 ExecuteMultipleRequest 快吗?

【问题讨论】:

  • 我使用 KingswaySoft Connector for SSIS 每秒管理约 100 条记录
  • 也许可以尝试增加批处理大小,最多可以达到 1000。另外,您是如何连接到 CRM 的?您使用的是最新的 CrmServiceClient 吗?

标签: dynamics-crm dynamics-crm-online dynamics-crm-365


【解决方案1】:

只有真正得到这方面的建议,您可能需要进行试验和调查,看看什么对您有用。

  1. 您能否在离您的 CRM Online 站点更近的物理位置运行您的中间件应用程序?

  2. ExecuteMultipleRequest 支持更大的批量大小,最高可达 1000。

  3. 您是否与仅使用单个执行请求进行了比较。

  4. 在运行数据导入时,CRM 中是否存在大量流程(工作流程、插件)?这可能会对性能产生很大影响。也许这些可以在数据导入期间禁用。例如。您可以在导入之前对数据进行预处理,因此不需要执行插件。

  5. 并发请求限制仅适用于ExecuteMultipleRequest,您是否尝试过运行大量并行单次执行请求?

【讨论】:

  • 1-我在公司网络之外运行中间件,也得到了大约 20 秒的时间。我不确定这是否更接近 CRM。我必须检查 CRM 位置。 2-我尝试用 50 个批次调用 ExecuteMultipleRequest,得到了大约 40 秒。 3-我没有尝试过对这个特定实体的单个请求,但对于其他实体,它只需要不到 1 秒。 4-可能有一些插件可能会减慢导入速度。我将与 CRM 开发团队核实。 5-对于其他实体,我使用了并行执行请求并得出结论 ExecuteMultipleRequest 更快。
猜你喜欢
  • 2021-03-18
  • 2019-04-30
  • 2019-02-17
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多