1/6用友股份-LE支持服务业务本部技术方案--《NC56调整现存量慢的问题的解决案例》建立日期:2013-07-01修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2013-00962/6文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围内部员工伙伴客户发布人姓名所属部门发布时间日期作者所属部门邮件地址版本2013-7-01郭智超产品支持部V1.0版本领域模块备注3/6目录NC56调整现存量慢的问题的解决案例.....................................................................4一、系统环境................................................................................................................4二、问题描述................................................................................................................4三、检查分析................................................................................................................5四、解决方法................................................................................................................64/6NC56调整现存量慢的问题的解决案例一、系统环境NC版本:5.6;数据量大小:30g;数据库版本:oracle10g;操作系统:windows+linux;中间件及集群方式:was水平集群二、问题描述供应链-调整现存量报错,如图5/6三、检查分析根据报错,判断是undo表空间不足,已在空闲时将oracleundotablespace“UNDOTBS1”增大到40g,重新执行计算,随没有再报错,但执行了24小时仍没有计算完毕。开启NMC监控线程,发现该计算一直在正常运行,再检查正在执行的sql,发现其中一个细节,就是有一条更新语句的时间已经更新到了2017年12月。按照正常逻辑判断,数据应该不会更新到未来的年份。这样判断应该是数据出了问题,于是检查计算所涉及的数据,即出入库单据,方法如下:Selectdistinctdbizdatefromic_general_bwheredbizdate>’2013-12-31’结果发现了表体中4个异常的日期,,而对应表头中的日期分别为:2011-07-05,2011-07-23,2010-11-04。与研发沟通确认计算的时6/6间段就是从业务单据中提取的,所以按照正常算法执行下去的话,要执行到2201年才能完成。到此,问题原因已找到,下一步就需要调整数据了。四、解决方法调整数据方法:updateic_general_bsetdbizdate=’2011-07-05’wheredbizdate=’2201-06-05’;updateic_general_bsetdbizdate=’2011-07-23’wheredbizdate=’2077-07-23’;updateic_general_bsetdbizdate=’2010-11-04’wheredbizdate=’2110-11-04’;