Dynamics CRM Performance Issue when CRM Forms Opening
事情发生在Dynamics CRM 8.2.2版本,客户新升级到这个版本几个月的时间。
突然有一天,客户反映为什么我们打开CRM Form页面的时候loading的时间这么长呢?大概会需要5-15分钟呢!并且每一个user的加载时间还不一样 >_<
我第一个反映就是,最近我们没更新环境啊,为什么突然会出现这个问题呢,一定是微软的bug,哼哼。
但冷静下来细想一下,还是需要提供一些东西的,比如如何证明是微软的bug?对此经过一系列推理、诊断、Google后,大概定位了一个方向RecentlyViewedXml的缓存。
或者也可能是网络问题?再或者也可能是DB性能问题?
对于以上几点猜测,于是总结了以下几点检查条件:
1、 让加载慢的User浏览器中输入https://CRMUrl/tools/diagnostics/diag.aspx,点击Run,等待测试结果,这个是对于网络延迟、带宽的诊断
2、 同样让加载慢的User打开加载慢的Entity Form,比如Case,加载完成后按CTRL+Shift+Q,弹出页面中点击Enable后刷新页面,页面再次加载完成后CTRL+Shift+Q,最后Create CSV Report
3、 收集CRM Trace log,为了后续根据CSV中的耗时多的RequestID查Log中对应的SQL之类信息
4、 最后Disable #2打开的form
5、 对于RecentlyViewedXml引起的问题诊断,可以通过浏览器中输入https://CRMUrl/api/data/v8.2/userentityuisettingsset?$ filter=_owninguser_value eq <user guid> and objecttypecode eq <entity object type code>,结果应该只返回5-10个,只看结果个数应该诊断不出来
6、 如果 #5 速度很慢,需要清理DB以及浏览器的local storage,只清一个地方不管用,这俩地方是互相同步的
最后问题的确是由于RecentlyViewedXml导致。这东西是在这里使用的:

从DB看了一下它里面到底存的什么,呵呵,一个大的xml,存了好多东西,每次读取更新,结果真的好惊喜,反正如果是我,我决定不会这么做。
好吧,既然定位了问题所在,接下来就好解决了。
啊,忘记说了,这个RecentlyViewed是UserEntityUISettings表的一个字段。
由于客户CRM DB我们没办法连接,所以通过WebAPI将这个字段内容按照客户需要的过滤条件删掉就可以了。
随便说一嘴,只有自己(包含admin也不可以)才能删除自己的RecentlyViewed数据。
然后删除完之后记得清一下本地浏览器的localstorage缓存,localstorage会跟DB中的数据双向同步!!没想到吧 ^_^

Dynamics CRM Performance Issue when CRM Forms Opening的更多相关文章
- Dynamics CRM项目实例之八:CRM 2015的产品系列,克隆,修订
关注本人微信和易信公众号: 微软动态CRM专家罗勇,回复139或者20150106可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 今天的博客主要是关于D ...
- 介绍Dynamics 365 Performance Center
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复257或者20170517可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...
- Java高级项目实战之CRM系统01:CRM系统概念和分类、企业项目开发流程
1. CRM系统介绍 CRM系统即客户关系管理系统, 顾名思义就是管理公司与客户之间的关系. 是一种以"客户关系一对一理论"为基础,旨在改善企业与客户之间关系的新型管理机制.客户关 ...
- Dynamics CRM 2011 2013-(An error occurred while opening mailbox xxx@xx.com Microsoft.Crm.Tools.Email.Providers.)
An error occurred while opening mailbox Microsoft.Crm.Tools.Email.Providers. Whenever I check how C ...
- Dynamices CRM Permission Issue (Security role UI to privilege mapping)'s solution
select * from privilege where privilegeid = 'a4736385-9763-4a64-a44b-cd5933edc631' Security role UI ...
- Dynamics CRM安装教程九(续):自建证书的CRM项目客户端设置CRM访问
配置完IFD之后就可以为客户端电脑配置访问CRM了首先到CA证书服务器中把证书下载下来,打开CA服务器的浏览器,输入地址http://stg-ad/certsrv/ 其中stg-ad是机器名之后点击下 ...
- How To Tune or Test PLSQL Code Performance in Oracle D2k Forms
You can test or tune your program unit performance in Oracle forms with Ora_Prof package.Suppose you ...
- 通用型CRM还是行业型CRM?-定制为王
大数据时代,怎样利用工具摆脱繁杂的数据管理之苦,洞察有价值的销售信息,是每一个管理者的迫切须要.Zoho CRM问世10年来,见证了一个个行业客户怎样在CRM帮助下实现了效率和业绩提升.相同,广泛的 ...
- After 2 years, I have finally solved my "Slow Hyper-V Guest Network Performance" issue. I am ecstatic.
Edit - It should be known that I was initially researching this issue back in 2012 and the solution ...
随机推荐
- Python数据分析软件包介绍
Python数据分析主要软件包: 1.python -m pip install numpy 2.python -m pip install pandas 3.python -m pip instal ...
- javascript 面向对象学习(二)——原型与继承
什么是原型? 首先我们创建一个简单的空对象,再把它打印出来 var example = {} console.log(example) 结果如下: { __proto__: { constructor ...
- 解决:Error:java: 无效的源发行版: 12
一. spring cloud项目启动.遇到问题: 二. 解决,共两个地方. 第一个位置: Shift/Ctrl/Alt/S 快捷键一起按 Modules选择你的项目(以及父级项目,如果有的话)-&g ...
- 调用webservice接口,报错:(十六进制值0x01)是无效的字符
#事故现场 调用webservice接口,报错:(十六进制值0x01)是无效的字符. 如图: 意思是webservice返回的信息中包含无效的字符,无法解析成xml: #分析 使用postman向we ...
- 如何利用Excel设计一个唱票统计系统?
具体操作如下: 首先需要一个如下的数据结构. 唱票数G列区域,不能手动输入候选人票数,这样很不方便,所以我们需要一个窗体控件,用点击鼠标的方法来实现唱票.在“开发工具-插入-数值调节钮”下图3处,然后 ...
- Excel常用公式大全
公式是单个或多个函数的结合运用. AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)”时返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”. 条件判断 AVERAGE ...
- 软件包,API,SDK的区别
参考资料: https://www.jianshu.com/p/cac186cb168b https://blog.csdn.net/snowin1994/article/details/806080 ...
- cc30a_demo-CppPrimer_友元与继承-txwtech友元关系不能继承-要明确授予友元
//友元可以访问类的private与protected成员//友元关系不能继承-要明确授予友元 #include <iostream>//CppPrimer_友元与继承-txwtech-- ...
- Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现
在这之前已经把编辑个人的所有信息的功能已经完成了 之后先对首页的列表搞动态的,之前都是写死的静态 1.之前都是把好友写死的,现在就在js里面定义一个数组,用循环来动态的绑定 在onReady中定义,取 ...
- 15.DRF-分页
Django rest framework(6)----分页 第一种分页 PageNumberPagination 基本使用 (1)urls.py urlpatterns = [ re_path('( ...