|
版本: |
BeX5V3.5 |
小版本号: |
253 |
|
|
数据库: |
MS SQLServer |
服务器操作系统: |
Windows |
应用服务器: |
Tomcat |
客户端操作系统: |
Windows 7 |
浏览器: |
IE10 |
|
|
本帖最后由 jjbboox 于 2019-2-12 15:42 编辑
待办任务的小窗口在sa_task中的数据规模达到几十万以后会变得异常缓慢。
经过调查发现TaskUtils.java中的getExecutorCondition方法有问题。
- for (PersonMember pm : pms){
- String var = "_efid" + i++;
- vars.put(var, pm.getFID());
- <font color="#ff0000"> String item = ":" + var + " like concat(" + alias + ".sExecutorFID, '%')";</font>
- if (useAgentProcess){
- String agentProcess = pm.getAgentProcess();
- if (Utils.isNotEmptyString(agentProcess)){
- String agentProcessCondition = getAgentProcessCondition(alias, agentProcess, vars);
- item += " and " + agentProcessCondition;
- }
- }
-
- items.add(item);
- }
复制代码
红色字体拼出来的KSQL条件,在数据量大了以后会变得异常缓慢。
不但使用like,还在SQL的Where条件式中使用了拼接函数,打开主页时需要将近20秒才能显示出来。
可否把该处的like条件改为=?
|
|