优化功能点
今日优化XX反馈响应太慢的功能点:
1.成立采购小组选择用户
2.退回订单页面
3.申请开票选择订单界面
这三个页面反应特别慢,经过对这个三个功能的逐一分析,找到太慢的原因。
1.成立采购小组选择用户 功能响应太慢。看代码:
public ActionForward indexResult(ActionMapping mapping, ActionForm form, HttpServletRequest request,
???HttpServletResponse response) {
??initLocation(request);
??request.setAttribute("users", userManager.findTeamUser());
??return new ActionForward("/XXX.jsp");
?}
?
这是查找选择用户的代码,这段代码没有做分页查询,也就是每次把满足条件的用户都查出来,如果满足条件的用户数多,那这个功能点必然会慢,
并且会越来越慢。
到正式站查了满足条件的数据,为18000多条,想想而知,把18000多条数据查询出来,保存到内容中风险有多大。
?
2.XXX订单页面?? 和?XX开票选择订单界面 功能点导致查询很慢的原因相同:查询试图写得太差,没有考虑大数据量的问题,导致查询太慢。
写得太差:就是执行一次查询可能对关联指标不可估计的多次查询。
像这种试图对写法:
create view my_view asselect?? ? ?szzc_get_name.f_get_columnmeans('TN_NOTE','BILL_FLAG',(select max(nvl(x.bill_flag,0)) from tn_note x where x.order_id=t.id and x.status =1 )) bill_flag_mean,? ? ? ?(select count(1) from tn_note x where x.order_id=t.id) note_count? from tpo_headers_all t? where t.status=1;?查询 my_view 试图使,可能对tn_note 不可预计的多次查询。所以导致很慢,并且会越来越慢。?
?
?
?