Dynamics crm 如何在Dynamics CRM中访问数据?
在平台速度和可维护性方面,在Dynamics CRM 4上访问数据(只读)的最佳方式是什么?这三个我都做了,但我对群众的意见很感兴趣Dynamics crm 如何在Dynamics CRM中访问数据?,dynamics-crm,dynamics-crm-4,crm,Dynamics Crm,Dynamics Crm 4,Crm,在平台速度和可维护性方面,在Dynamics CRM 4上访问数据(只读)的最佳方式是什么?这三个我都做了,但我对群众的意见很感兴趣 通过API 直接通过网络服务 通过DB调用视图 …为什么 我的想法通常集中在对视图的DB调用上,但我知道那里有纯粹主义者。考虑到这两个要求,我想说您希望调用视图。精心编制的SQL查询将会飞起来 如果您计划修改数据,则需要通过API,但这不是最快的方法,因为它不允许深入加载实体。例如,如果你想查看客户和他们的订单,你必须单独加载,然后手动加入他们。其中,作为SQ
- 通过API
- 直接通过网络服务
- 通过DB调用视图
我的想法通常集中在对视图的DB调用上,但我知道那里有纯粹主义者。考虑到这两个要求,我想说您希望调用视图。精心编制的SQL查询将会飞起来 如果您计划修改数据,则需要通过API,但这不是最快的方法,因为它不允许深入加载实体。例如,如果你想查看客户和他们的订单,你必须单独加载,然后手动加入他们。其中,作为SQL查询,数据将已联接 尽管TDS流比API和Web服务所使用的SOAP消息要有效得多 更新
关于视图和CRM数据库,我应该指出:CRM没有为自定义实体优化表或视图上的索引(怎么可能?)。因此,如果您有一个卡车装载的实体,并且一直按目的地进行查找,则需要为该属性添加索引。根据您的应用程序,它可能会在性能上产生巨大的差异。我要补充jake的评论,说直接查询表而不是查询视图(*base&*extensionbase)会更快 按照速度的顺序应该是:
直接表格更新: 我不同意Jake所说的所有更新都必须通过API。正确的说法是,通过API进行更新是唯一受支持的方式。事实上,在一些情况下,直接修改表是最合理的选择:
- 系统未运行时一次性导入大量数据
- 跨大量数据修改特定字段
未过滤视图与API:我从未将通过API查询与查询视图进行过比较,但我比较了通过API写入数据与直接通过SQL插入数据的成本。通过API导入数百万条记录可能需要几天时间,而使用insert语句执行相同的操作可能需要几分钟。我认为在阅读过程中,差异并没有那么大,但可能仍然很大。直接对照表格时要小心。视图强制执行安全性,这不会直接发生在表中。另外,直接对表进行更新是一个非常糟糕的主意。所有更新都必须通过API。如果你有很多数据,那就糟透了,但如果你没有做到这一点,可能会产生不可预测的结果。我从不建议通过表或视图进行任何直接更新或插入。然而,对于大规模应用程序(数百个用户和数百万行),api不会将其用于查询目的。如果您需要强制执行安全角色,那么是的,您必须反对API或过滤视图。这两种方法在提取大量数据时都非常缓慢。