Dynamics 365 F&O 性能问题实例二

今天要给大家分享的性能问题是性能问题中常见的一种场景 -- 受害者场景。

什么是受害者,就是性能问题出现后,出现问题的功能本身没有问题,是别的功能导致的性能问题,被称为受害者。受害者场景的性能问题是所有性能问题中较难解决的一种。前面文章中分享的不稳定再现的性能案例,也可以理解为是受害者的一种场景。这种场景之所以复杂是因为功能本身是没有问题的。我们解决问题的时候很容易从问题本身出发去寻找答案,这样一来找到问题的可能性就会很小,因为功能本身是没有问题的。这就是为什么说受害者的性能问题比较复杂的原因。

先看看今天的问题,然后再看如何分析。

问题:Grid字段中过滤字段比如“包含” 条件,输入条件后过滤数据特别慢。

分析:过滤字段这个功能懂点技术的都知道,这是属于平台功能,开发过程中不需要写一行代码,所有字段都会自带此功能,因此这样的问题一出现肯定想到的是产品问题。但是我们也知道,产品本身这个功能是没有问题的。

问题调查:首先找到一个纯标准功能的窗体,数据量稍微大一点的,去验证一下速度,发现没有问题。这样就可以将范围缩小到有问题的窗体本身。前面的文章也给大家介绍过一个思路,遇到问题一定要将范围缩小,能多小就多小,这样发现问题的机会就会很大。这里给开发人员也提醒一下,写代码的时候也是,不要把所有逻辑都写到一个方法或者少数几个方法中,一个方法只干一件事是最好的。回到这个案例,出现问题的窗体是定制窗体,打开窗体一看,Grid显示的字段很多,而且Display 方法很多,直觉告诉我就是这些定制的问题,不需要看代码,先用个性化试图的方式把所有定制的Display字段隐藏,剩下几个标准字段,然后再测试,发现速度正常。问题已经分析清楚了,接下来如何解决就要容易很多。

文章结尾,我要分享的观点是:

1.  解决问题一定要放在大环境下,整体考虑,找到问题的根源,再去解决,不要做补丁式的维护。

2.  解决问题一定要了解客户/用户的真实目的,否则再好的方案也不能解决用户的需求。网上有一道知名公司的面试题,“800公斤的牛过承重只有700公斤的桥,如何过去?”类似这种问题什么方案都有可能是错误的,因为你不了解用户为什么有这个需要。我们需要解决的是用户提出的深层次的问题,不是表面问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值