起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3710|回复: 6

[处理中3] 首页块中为什么待办任务比提交任务加载的慢

[复制链接]

66

主题

152

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
QQ
发表于 2019-9-23 16:20:04 来自手机 | 显示全部楼层 |阅读模式
首页块中提交任务加载的很快,但是待办任务加载很慢,我看了页面配置和action,都差一样啊,为什么会出现这种情况,怎么解决?

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
发表于 2019-9-23 16:26:01 | 显示全部楼层
待办任务查出来数量为0吗
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

66

主题

152

帖子

463

积分

中级会员

Rank: 3Rank: 3

积分
463
QQ
 楼主| 发表于 2019-9-23 16:39:55 来自手机 | 显示全部楼层
江苏院-吴昊 发表于 2019-9-23 16:26
待办任务查出来数量为0吗

有数据啊
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2019-9-23 17:00:21 | 显示全部楼层
where条件是不一样的
把sql语句的执行时间打出来看看
http://bbs.wex5.com/forum.php?mo ... 4&pid=165004035
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
发表于 2019-9-26 09:30:03 | 显示全部楼层
本帖最后由 江苏院-吴昊 于 2019-9-26 11:17 编辑

如果你没有修改过,平台默认的是用like语句,sExecutorFID字段。因为任务的执行者是可以指定部门和岗位的,所以用的是like。


平台用的是:
String item = ":" + var + " like concat(" + alias + ".sExecutorFID, '%')";

需要把表里所有行的sExecutorFID 取出来拼接 %,


即 当前人的 sFID like SA_Task.sExecutorFID + '%'


如果你确定你的任务都是指定到psm的,不是dpt也不是pos。那么可以把 like 直接改为 =。性能提升很明显。

9万数据:

平台原SQL:
  1. SELECT
  2.         SA_Task.*
  3. FROM
  4.         SA_Task SA_Task
  5. INNER JOIN SA_Task SA_Task_P ON SA_Task_P.sID = SA_Task.sParentID
  6. WHERE
  7.         (
  8.                 (
  9.                         (
  10.                                 (
  11.                                         SA_Task_P.sKindID = 'tkTask'
  12.                                         AND SA_Task.sKindID = 'tkExecutor'
  13.                                 )
  14.                                 OR SA_Task.sKindID = 'tkTask'
  15.                         )
  16.                         AND (
  17.                                 (
  18.                                         SA_Task.sStatusID = 'tesReady'
  19.                                         OR SA_Task.sStatusID = 'tesExecuting'
  20.                                 )
  21.                         )
  22.                 )
  23.                 AND '/JSPDI.ogn/gg.dpt/zkjs.pos/100448@zkjs.psm' like concat(SA_Task.sExecutorFID,'%')
  24.         )
  25. ORDER BY
  26.         sCreateTime DESC
  27. LIMIT 0,
  28. 10
复制代码


改为=
  1. SELECT
  2.         SA_Task.*
  3. FROM
  4.         SA_Task SA_Task
  5. INNER JOIN SA_Task SA_Task_P ON SA_Task_P.sID = SA_Task.sParentID
  6. WHERE
  7.         (
  8.                 (
  9.                         (
  10.                                 (
  11.                                         SA_Task_P.sKindID = 'tkTask'
  12.                                         AND SA_Task.sKindID = 'tkExecutor'
  13.                                 )
  14.                                 OR SA_Task.sKindID = 'tkTask'
  15.                         )
  16.                         AND (
  17.                                 (
  18.                                         SA_Task.sStatusID = 'tesReady'
  19.                                         OR SA_Task.sStatusID = 'tesExecuting'
  20.                                 )
  21.                         )
  22.                 )
  23.                 AND SA_Task.sExecutorFID = '/JSPDI.ogn/gg.dpt/zkjs.pos/100448@zkjs.psm'
  24.         )
  25. ORDER BY
  26.         sCreateTime DESC
  27. LIMIT 0,
  28. 10
复制代码

原SQL,1秒多
改进的SQL,0.01秒

----------------索引只能走一个,这条语句mysql选择的是IDX_TASK_CREATETIME 索引。所以我觉得还是like 的问题。----

如果要指定部门、岗位。

应该用把/JSPDI.ogn/gg.dpt/zkjs.pos/100448@zkjs.psm ,按层级分解,使用=做过滤条件,然后用or连接,应该效率也会高点





及时结贴是个好习惯
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
发表于 2019-9-26 09:34:31 | 显示全部楼层
这个两个sql可以拿去到数据库执行下
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

532

主题

2107

帖子

4308

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4308
发表于 2019-9-26 11:25:04 | 显示全部楼层
QQ图片20190926112313.png


建议平台自带mysql8。mysql8性能高很多。 5.6的待办需要1.8秒。 5.8版本只需要0.5秒。

另外待办这块语句,建议按sFID的层级分级,用or来连接 = 条件,这样效率也高。
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-29 06:39 , Processed in 0.110666 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表