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

QQ登录

只需一步,快速开始

查看: 5264|回复: 5

[结贴] sa_task表数据量大导致经常发生锁表,造成系统瘫痪

[复制链接]

2

主题

10

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
QQ
发表于 2015-5-6 10:18:38 | 显示全部楼层 |阅读模式
X5版本:5.2.7
数据库:sql server 2008
操作系统:windows server 2008
系统运行大半年以后,sa_task表中目前有70万条数据。系统平常登录用户在100人左右。最近经常发生用户无法登陆的情况。
经查询日志并进行跟踪后发现sa_task表经常发生死锁。
继续查看源码,定位在 /BIZ/SA/task/logic/code/dsrc/TaskViewProcedure.java 中
此文件主要功能是显示待办、已办。
由于原系统未提供在主页上显示当前待办条数和已办条数,我参照此文件中的写法,对待办、已办进行了统计。但x5用的ksql不支持 with(nolock),所以在查询的时候会产生页面锁。
同时,即使不进行待办条数的统计,在显示小部件时也会使用同样的语句进行查询,也会产生页面锁。在多人同时进行操作的时候还是会发生这种情况。
请问一下这种问题怎么处理?

2

主题

10

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
QQ
 楼主| 发表于 2015-5-6 10:25:23 | 显示全部楼层
代码见附件
查询锁表语句 基本上就是诸如
                        String query = "select t, t.sName, t.sCURL, t.sProcess, t.sActivity, t.sCreateTime, t.sExecutorFName, t.sExecutorNames, t.sEURL, t.sCreatorFName, t.sShortcut, t.sHints, t.sCreatorFID, t.sExecutorFID, t.sKindID " +
                                " from SA_Task t " +
                                " where (t.sKindID='tkTask' or t.sKindID='tkExecutor' or t.sKindID='tkNotice' or t.sKindID IS NULL) " +
                                " and (t.sStatusID='tesFinished' or t.sStatusID='tesAborted' or t.sStatusID='tesCanceled' or t.sStatusID='tesReturned' ) " +
                                " and (t.sTypeID IS NULL or t.sTypeID <> 'WORKREMIND')" +
                                " and " + condition +
                                " order by  t.sCreateTime desc " +
                                " limit 0,8 ";

TaskViewProcedure.rar

2.3 KB, 下载次数: 202

回复 支持 反对

使用道具 举报

2

主题

10

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
QQ
 楼主| 发表于 2015-5-6 10:48:41 | 显示全部楼层
前期同事跟踪排障过程在 http://bbs.wex5.com/forum.php?mod=viewthread&tid=71559
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2015-5-6 14:38:37 | 显示全部楼层
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

42

主题

170

帖子

426

积分

中级会员

Rank: 3Rank: 3

积分
426
QQ
发表于 2018-2-8 11:11:12 | 显示全部楼层
我这也时不时锁定 导致单据提交后 update sa_task锁定更新失败报错
这个表数据量增加的很快 为何起步不支持对这个表进行分库分表或者切割呢
太垃圾了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2018-2-8 11:20:05 | 显示全部楼层
xuxu 发表于 2018-2-8 11:11
我这也时不时锁定 导致单据提交后 update sa_task锁定更新失败报错
这个表数据量增加的很快 为何起步不支持 ...

平台现在已经提供了任务归档功能,在你之前的帖子中已经回复过
http://bbs.wex5.com/forum.php?mo ... 7&pid=165494593
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 08:13 , Processed in 0.078367 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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