用友股份-LE服务支持部技术方案--《辅助余额查询缓慢问题解决案例》建立日期:2013-04-01修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2013-00402/5文档控制创建记录审阅人姓名所属部门职位审阅签字发布人姓名所属部门发布时间日期作者所属部门邮件地址版本2013-04-01李楠V1.03目录辅助余额查询缓慢问题解决案例........................................................................................4一.系统环境..................................................................................................................4二.问题描述................................................................................................................4三.检查分析................................................................................................................4四.解决方法................................................................................................................54辅助余额查询缓慢问题解决案例一.系统环境NC56二.问题描述业务查辅助余额时慢。勾选实时凭证三.检查分析远程使用NMC分析,看到有类似如下的sql经常出现:insertintoglTMP_assORA(assid)selectassidfromgl_fixtmpfreevaluegl_ftpfreevaluewheregl_ftpfreevalue.dev1<>'NN/A',后面的条件可能不一样。从我查询这个sql的结果来看,gl_fixtmpfreevalue表大概有36万行记录,例子语句wheregl_ftpfreevalue.dev1<>'NN/A'查询出35万多条内容插入到glTMP_assORA中临时表中35万行记录的检索有比较大的性能问题5四.解决方法有通版补丁“v56_gl辅助余额表包含实时凭证查询优化补丁.jar”,优化方案的核心是“辅助核算不再创建临时表,直接走辅助核算横表”,修改了nc.bs.glcom.balance.GlBalanceBO类中的isCommonQuery方法。这样不管勾不勾选实时凭证,均不在生成glTMP_assORA表。