![]() |
1
6
这是可行的,但您可能会发现在多个进程尝试读取/更新同一数据时会遇到阻塞或死锁。我为我们的一个系统编写了一个过程,它使用一些有趣的锁语义来确保这类事情在没有阻塞或死锁的情况下运行, described here . |
![]() |
2
1
这种方法在我看来是合理的,与我过去使用过的方法类似——成功的。 另外,只有在执行更新和选择操作时,行/表才会被锁定,所以我怀疑行与表的问题实际上是一个主要考虑因素。 除非你的应用程序的处理开销如此之低以至于可以忽略不计,否则我会将“最高”值保持在较低的水平——也许只有1。当然,这完全取决于你的应用程序的细节。 说了这么多,我不是DBA,所以我也会对任何更专业的答案感兴趣。 |
![]() |
3
1
关于锁定的问题。您可以使用锁定提示来强制它只锁定行。
|
|
4
1
这种方法最大的问题是增加了表的“更新”数量。尝试只使用一个进程(更新+删除)和其他进程在表中插入数据,您会发现在大约一百万条记录中,它开始崩溃。 我希望有一个数据库使用者,并使用消息队列将处理数据传递给其他使用者。 |
![]() |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
![]() |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
![]() |
hud · 执行存储过程会导致错误 8 年前 |
![]() |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |