1/5用友股份-LE支持服务业务本部技术方案--《假期调整过程中长时间没有响应的处理》建立日期:2014-01-20修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2014-00222/5文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围发布人姓名所属部门发布时间内部员工伙伴客户日期作者所属部门邮件地址版本2014-01-20白晓宇技术支持部V1.0版本领域模块备注3/5目录假期调整过程中长时间没有响应的处理................................................................4一、问题描述............................................................................................................4二、问题处理............................................................................................................44/5假期调整过程中长时间没有响应的处理注:此解决方案涉及数据库操作或代码操作,请由计算机专业人士操作,并且操作前请做好备份工作!一、问题描述制定一个假日,在进行工作日与周末进行调整后,点击保存,前台卡死,长时间没有响应,执行1天都无法出结果。二、问题处理第一次查看,发现语句中有全表扫描,导致耗时较长,在相应的字段上创建索引,在2个小时以内可以出结果。执行计划及sql见《sql执行计划.txt》第二次远程通过nmc,及sql语句查询,发现这条语句处在下面的等待事件中,该sql的执行计划相比较第一次的有了很大的改善,但是执行时间依然很长。5/5通过对相应的会话做trace,可以看到该语句的下面的部分对于i_tbm_blcbmutex_jszc02扫描的结果集评估达到了5亿之多,一致性读取的次数也非常多。而对应的表实际的数量才188行,该表的统计信息已经收集过了,很明显这个评估是错误的。将数据导入到oracle11g后,在执行该语句,能很快的完成。可见该问题是由于oracle对于结果集的错误评估导致的。