这个还真可能就是你数据库设计的问题了。
一般情况下,500W的数据,这个表应该是经常添加数据的,这一类的数据表,尽可能少进行批量操作。
正常情况下,只允许对单一记录进行更新操作。更新前进行TimeStamp检查。
如果你的批量操作中涉及的数据可能与单条UPDATE的数据相叉的话,建议采用不同的数据表设计。
与事不事务无关。
因为你只是这样抽象说明问题,不能知道你为什么又要有批量操作,又要有其他对CUSTOM表的操作,
无法更进一步说明如何修改数据表设计。
首先感谢你解答我的问题。
关于你说的:
首先我觉得已经把要点说出来了.
举个例子:一个用户拿到一批数据,进行导入,然后分配给下面的组长,组长分配给组员。
但在分配过程中组员需要联系客户并建立工单(这里会涉及客户表修改)
1.这些批量操作必不可少,这个必须要的。
2.单条update数据交叉:1.目前我想的是,如果正在做批量操作就不让他访问这个客户,或查询不到此客户。
求具体解决方案。搞了一天,实在想不出怎么办.
@远方的终点:
通常的做法是,工单是工单,客户是客户。
客户是很少修改的,工单是增长的记录。
你最好能举一个例子说明一下,否则真不知道你的问题在哪儿。
需要说明,使用系统的用户数量、为啥要批量操作,批量操作和单次操作什么情况下会重复到一条数据。
@爱编程的大叔:
恕我才疏学浅,我在网上查了下 查询的时候对表加 with(READPAST) 不查询锁定的行,貌似可以。
你觉得这样怎么样?可以吗
@爱编程的大叔:
我一直以为事务+表修改 是表锁。
我问下 什么情况下,是表锁,而且是独占锁(排它锁)
读写分离
这回答,让我不知所措。。。。
定时任务,在数据库比较闲的时间进行批量操作。可以采用SqlAgent。
不可能,客户明确要求要随时可以分配、回收等批量操作