运用临时表方案优化薪酬核算函数中的数据查询性能
薪酬核算中,经常要关联查询考勤结果表T_HR_ATS_AttendanceResult,随着客户系统的长期使用,此表的数据量十分庞大,以某个使用了4年的客户为例,考勤结果表的数据量已经达到5千万级,导致某些需要关联查询考勤结果的核算函数执行起来耗时非常久,严重拉低了整体薪酬核算的性能。
针对此情况优化的方案是,创建临时表,先把满足当前期间薪酬核算的考勤数据取出来,放在临时表中并创建索引,后续取数都从临时表中取。
String tempAttResultTab = TempTablePool.getInstance(ctx).createTempTableName(); String insertAttResultTab = " SELECT t.* into "+tempAttResultTab +" from T_HR_ATS_AttendanceResult t where t.FATTENCEDATE between {ts'"+beginDateStr+"'} and {ts'"+endDateStr+"'} " +" and t.FPROPOSERID in (select a.FPERSONID from t_hr_scmpcaltable a inner join "+tempCalTableName+" " +" b on b.FID = a.FID where a.fcalSchemeid='"+calschemeid+"' )"; DbUtil.execute(ctx, insertAttResultTab); //临时表创建索引 String attResultTabIndex = "IX_HR_ATTRST"+String.valueOf(endTime2); String createIndexSql2 = "create index "+attResultTabIndex+" on "+tempAttResultTab+"(FPROPOSERID,FATTENCEDATE) "; DbUtil.execute(ctx, createIndexSql2);
运用临时表方案优化薪酬核算函数中的数据查询性能
薪酬核算中,经常要关联查询考勤结果表T_HR_ATS_AttendanceResult,随着客户系统的长期使用,此表的数据量十分庞大,以某个使用了4年的...
点击下载文档
上一篇:多数据中心时修改默认数据中心下一篇:修改调试模式端口
本文2024-09-17 01:12:31发表“s-hr cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-shr-65952.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章