Dynamics 365运维疑难问题处理思路(二)

解决复杂问题的基本思路:先缩小问题的范围,再确定问题,最后解决问题。

本文也是使用一个真实的故事来说明如何解决问题。 跟第一篇的故事类似,都是很多顾问花了很长时间不能解决的问题。

今天的故事是一个性能问题,跟工作流审批有关。

问题现状: 销售订单需要有工作流进行审批,一旦提交审批后,流入下一级审批所需时间越来越久,系统刚上线速度还可以,上线一个月后速度开始慢下来,2个月后,几乎审批需要几个小时,非常影响发货效率。

技术描述:工作流审批不是标准的销售订单工作流,而是利用案例功能,在案例功能基础上开发增加了工作流审批。 问题出现后,合作伙伴动用了很多顾问去解决此问题,技术人员说工作流不会出问题,因为工作流的开发没有逻辑代码。

处理思路:

  1. 由于采用案例作为工作流的框架,所以首先怀疑案例是否能支持工作流,因为标准案例是不存在工作流的。经过大量的测试后发现没有问题,案例可以支持工作流。
  2. 跟踪代码,缩小范围。 在跟踪过程中,发现有一个方法会非常慢,基本可以定位此方法出了问题。
  3. 对有问题的方法进行认真阅读后发现是标准功能,没有任何定制,不会出问题。
  4. 再次对可疑方法进行Debug,发现方法主要处理Query中的数据,这个Query是销售订单相关的Query
  5. 联想到工作流是需要Query的,所以感觉定位应该是Query查数据慢
  6. 仔细检查Query的构造,构造没有问题,再细看,Query没有增加Relation。销售订单头和销售订单行之间做了笛卡尔积,应该是性能慢的主因。
  7. 将属性Relation设置为Yes,再测试,性能问题解决。

前面两个例子,都是看起来无从下手的复杂问题,技术调查起来也费劲,但是问题的解决都非常简单。这两个例子就很好的说明了复杂问题的思路,一定要先缩小问题的范围,排除一些保证正确的分支,一旦问题范围缩小到足够小,问题基本就解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值