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

QQ登录

只需一步,快速开始

查看: 9789|回复: 13

[处理中5] 关于X5大数据量更新的时候效率低下的分析及建议

  [复制链接]

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
发表于 2018-1-15 11:16:04 | 显示全部楼层 |阅读模式
X5的前端数据组件设计的非常好。最近发现这里存在着一个缺陷--就是当页面上的数据量大于100条的时候,每一条都进行了更新,再保存的时候,就会明显卡顿。如果数据量达到300条的话,至少能卡上10秒左右。经过研究发现,这个问题关键是因为X5底层设计的问题。把每一条语句的更新分解成一个UPDATE语句,建立一次数据库连接,执行一次更新操作,而不是把所有的更新拼成一个事务,一次提交给数据库。这是导致效率问题的主要原因。我感觉这个问题可以解决。建议起步升级底层saveAction的执行逻辑。你们辛苦一次,造福整个X5生态圈。
起步加油!!!!
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-15 11:47:05 | 显示全部楼层
每一条都进行了更新在页面中通过data修改的数据?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2018-1-15 12:31:18 | 显示全部楼层
本帖最后由 wgs7909 于 2018-1-15 12:33 编辑
jishuang 发表于 2018-1-15 11:47
每一条都进行了更新在页面中通过data修改的数据?

是的。页面数据是通过循环修改的。不是手动修改。
数据怎么修改的,不是问题的关键,关键是平台底层实现更新数据的逻辑。除了更新,还有插入的实现机制也是同理。


企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-15 13:45:58 | 显示全部楼层
你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-18 10:09:33 | 显示全部楼层
本地测试data中多条数据同时修改是在同一个事务中的,不是每条记录一个事务
update1.png
update2.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2018-1-20 14:38:27 | 显示全部楼层
本帖最后由 wgs7909 于 2018-1-20 15:37 编辑
jishuang 发表于 2018-1-18 10:09
本地测试data中多条数据同时修改是在同一个事务中的,不是每条记录一个事务
...

java做数据库操作的时候可以生成一条update语句,执行一次。也可以把多个update语句放在一个事务里,一次提交,这样效率会高很多。

你可以自己做一个测试,页面上加载200条数据,修改某一列所有行的值,点一下保存, 后台打印出的是200个update。也就是java调用数据库操作语句,调用了200次。

QQ截图20180120143525.png
QQ截图20180120153653.png
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-1-22 09:56:39 | 显示全部楼层
已作为产品功能建议提交(内部编号:)2018012200001,感谢楼主的支持与配合。
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

851

主题

2560

帖子

5714

积分

论坛元老

Rank: 8Rank: 8

积分
5714
QQ
 楼主| 发表于 2018-2-5 17:34:00 | 显示全部楼层
jishuang 发表于 2018-1-22 09:56
已作为产品功能建议提交(内部编号:)2018012200001,感谢楼主的支持与配合。

这个功能,能不能做为一个重要建议,提交上去呢?最近项目中频繁出理效率瓶颈问题,其根本原因都在这里。这真的是一个重大的产品缺陷。
强烈建议先出一个补丁来解决眼时的问题。
下一个版本一定要修正啊!!!!!
企业应用定制开发。X5开发者。
手机:15065117236
QQ:87356667
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2018-2-5 17:42:52 | 显示全部楼层
急需解决的可以联系起步相关的商务人员协调
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

532

主题

2107

帖子

4306

积分

论坛元老

起步萌新

Rank: 8Rank: 8

积分
4306
发表于 2018-2-27 14:48:14 | 显示全部楼层
我想探讨下:首先起步的多行数据更新,肯定是放在一个事务中,其中一行报错,所有的回滚。
其次,这种批量更新的操作,难道不是生成多条update 语句吗?我想也只能生成多条update语句啊



我想象了一下你的场景,一个大的grid,操作人员在一条条更新数据,最后批量保存。
其实可以协商下,用户是否愿意自动保存。当切换到令一行数据的时候,自动保存已有的修改,应该可以避免的你性能问题。
及时结贴是个好习惯
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 13:07 , Processed in 0.070101 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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