首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FetchXml优化

FetchXml优化
EN

Stack Overflow用户
提问于 2014-03-12 00:55:21
回答 3查看 764关注 0票数 1

我正在寻找如何优化批量下载CRM2011数据的方法。以下是两个主要场景:

a)完全同步:下载所有数据-首先下载所有帐户,然后下载所有联系人等。

b)增量同步:下载自给定日期以来修改的所有实体

我们使用3个线程的多线程下载器。每个线程对逐页下载的一种实体类型执行FetchXml。解析的对象存储在下载器缓存中,下载器继续下一页。还有另一个线程从缓存中提取下载的数据并对其进行处理。这种组织将下载速度提高了2倍以上。

我看到的问题是:

a) FetchXml协议效率很低。例如,它包含大量不需要的数据。示例: FormattedValues占用10-15%的带宽(我的数据显示,在源XML流中约占15%,在压缩后的流中约占10%),尽管我们所做的只是a) Xml解析,b)丢弃。(请注意,解析也是不可忽视的- iOs/Android Mono解析器的速度令人惊讶。)

b)在增量同步的情况下,大多数FetchXml请求返回零项。在这种情况下,将多个FetchXml请求合并为一个请求将是非常理想的。(AFAIK这是不可能的。)或者使用另一种技巧,比如询问修改过的对象的数量,我还没有调查什么是可能的。

有谁有什么建议可以优化FetchXml流量吗?

EN

回答 3

Stack Overflow用户

发布于 2014-03-12 05:00:22

你最快的方法是直接使用SQL server来做这样的事情(除非你使用的是在线的)。

要使增量更快,最好的办法是使用FetchXML提供的聚合功能,它既非常快,又不那么冗长。

为什么要在iOS/Android Mono上解析?如果您要将此数据共享给大量设备,最好有一个中央缓存服务器,它可以将此数据以json (压缩)格式发送回设备(也可能是bson)。然后,缓存服务器将请求更新更改,处理这些更改,然后将任何格式的增量更改发送回客户端。在客户机上速度会快得多,带宽也会少得多。

票数 0
EN

Stack Overflow用户

发布于 2014-03-12 09:24:33

我不确定有什么方法可以进一步优化FetchXML。我会问您为什么不使用OData端点和REST,特别是当您主要关心通过网络发送的数据时。

我和一些优秀的CRM MVP谈过,我知道他们已经使用REST将数据迁移到CRM。我不确定他们这样做是否是因为它更快,但我认为这就是原因。

我知道您将最小化发送到客户机的数据量,因为XML非常臃肿。

票数 0
EN

Stack Overflow用户

发布于 2014-03-19 23:40:26

看一下ExecuteMultipleRequest,它允许您一次执行多个请求/查询...http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.messages.executemultiplerequest.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22331406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档