首页 新闻 搜索 专区 学院

求助数据库设计问题。急!

0
悬赏园豆:50 [已解决问题] 解决于 2014-04-14 08:37

1.有一张custom表 数据500W的样子

2.有分配、回收、共享等等批量操作

3.这些操作在事务中执行

例如:    分配:update custom、insert custom 等其他表修改 在一个事务中执行

 

怎样在进行批量操作时,不影响(或将影响将到最小)其他对custom表的操作。

如:查询、单条update Custom表

zhaocj的主页 zhaocj | 初学一级 | 园豆:119
提问于:2014-04-11 11:37
< >
分享
最佳答案
0

这个还真可能就是你数据库设计的问题了。

一般情况下,500W的数据,这个表应该是经常添加数据的,这一类的数据表,尽可能少进行批量操作。

正常情况下,只允许对单一记录进行更新操作。更新前进行TimeStamp检查。

如果你的批量操作中涉及的数据可能与单条UPDATE的数据相叉的话,建议采用不同的数据表设计。

与事不事务无关。

因为你只是这样抽象说明问题,不能知道你为什么又要有批量操作,又要有其他对CUSTOM表的操作,

无法更进一步说明如何修改数据表设计。

收获园豆:50
爱编程的大叔 | 高人七级 |园豆:30753 | 2014-04-11 13:03

首先感谢你解答我的问题。

关于你说的:

首先我觉得已经把要点说出来了.

举个例子:一个用户拿到一批数据,进行导入,然后分配给下面的组长,组长分配给组员。

但在分配过程中组员需要联系客户并建立工单(这里会涉及客户表修改)

zhaocj | 园豆:119 (初学一级) | 2014-04-11 15:48

1.这些批量操作必不可少,这个必须要的。

2.单条update数据交叉:1.目前我想的是,如果正在做批量操作就不让他访问这个客户,或查询不到此客户。

zhaocj | 园豆:119 (初学一级) | 2014-04-11 15:54

求具体解决方案。搞了一天,实在想不出怎么办.

zhaocj | 园豆:119 (初学一级) | 2014-04-11 15:54

@远方的终点: 

通常的做法是,工单是工单,客户是客户。

客户是很少修改的,工单是增长的记录。

你最好能举一个例子说明一下,否则真不知道你的问题在哪儿。

需要说明,使用系统的用户数量、为啥要批量操作,批量操作和单次操作什么情况下会重复到一条数据。

爱编程的大叔 | 园豆:30753 (高人七级) | 2014-04-11 16:03

@爱编程的大叔: 

恕我才疏学浅,我在网上查了下 查询的时候对表加 with(READPAST) 不查询锁定的行,貌似可以。

你觉得这样怎么样?可以吗

zhaocj | 园豆:119 (初学一级) | 2014-04-11 16:38

@爱编程的大叔: 

我一直以为事务+表修改 是表锁。

我问下 什么情况下,是表锁,而且是独占锁(排它锁)

zhaocj | 园豆:119 (初学一级) | 2014-04-11 16:42
其他回答(2)
0

读写分离

【秦时明月】 | 园豆:851 (小虾三级) | 2014-04-11 13:33

这回答,让我不知所措。。。。

支持(0) 反对(0) zhaocj | 园豆:119 (初学一级) | 2014-04-11 15:26
0

定时任务,在数据库比较闲的时间进行批量操作。可以采用SqlAgent。

幻天芒 | 园豆:36672 (高人七级) | 2014-04-11 14:22

不可能,客户明确要求要随时可以分配、回收等批量操作

支持(0) 反对(0) zhaocj | 园豆:119 (初学一级) | 2014-04-11 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册