如何访问Dynamics CRM中的数据?

时间:2010-03-29 14:24:45

标签: dynamics-crm dynamics-crm-4 crm

在Dynamics CRM 4上,平台速度和访问数据(只读)的可维护性方面的最佳方法是什么?我已经做了三个,但对人群的意见感兴趣。

  • 通过API
  • 直接通过网络服务
  • 通过DB调用视图

......为什么?

我的想法通常围绕数据库调用视图,但我知道那里有纯粹主义者。

3 个答案:

答案 0 :(得分:2)

考虑到这两个要求我会说你想调用这些观点。正确制作的SQL查询将会飞行。

如果您计划修改数据,则需要通过API,但它不是最快的方法,因为它不允许深度加载实体。例如,如果您想查看客户及其订单,则必须单独加载它们,然后手动加入它们。 SQL查询的位置已经加入了数据。

没关系,TDS流比API和API使用的SOAP消息更有效。 web服务。

<强>更新

我应该指出一般情况下的观点和CRM数据库:CRM不会优化自定义实体的表或视图的索引(怎么可能?)。因此,如果您有一个卡车装载实体,您按目的地查找,您将需要为该属性添加索引。根据您的应用程序,它可能会对性能产生巨大影响。

答案 1 :(得分:1)

我会添加到jake的评论中说,直接查询表格而不是视图(* base&amp; * extensionbase)会更快。

按照速度顺序:

  1. 直接表查询
  2. 查看查询
  3. 过滤视图查询
  4. api call

答案 2 :(得分:0)

直接表格更新:

我不同意杰克所有更新都必须通过API。正确的说法是,通过API是唯一支持的方式来进行更新。实际上有几个直接修改表的实例是最合理的选择:

  • 在系统未运行时,一次导入大量数据。

  • 修改大量数据中的特定字段。

我同意,当API的性能不可接受时,这种直接修改应该是最后的手段。但是,如果要在数千条记录上修改布尔字段,则对表进行直接SQL更新是一个很好的选择。

相对速度

就相对速度而言,我同意XVargas。

未过滤的视图与表:我没有发现性能优势值得手动加入基表和扩展表的麻烦。

未过滤的视图与过滤的视图:我最近使用的是一个复杂的查询,使用过滤后的视图运行大约需要15分钟。切换到未过滤的视图后,此查询在大约10秒内运行。查看相应的查询计划,原始查询有8个操作,而针对筛选视图的查询有80多个操作。

Unfiltered Views vs API:我从未将查询通过API与查询视图进行比较,但我比较了通过API编写数据与直接通过SQL插入的成本。通过API导入数百万条记录可能需要几天时间,而使用insert语句的相同操作可能需要几分钟时间。我认为在阅读过程中差异不是很大,但可能仍然很大。