管理队列中的并发

时间:2011-06-16 13:22:35

标签: sql-server-2005 concurrency

我正在设计一个数据库,用于存储以后处理的请求。当此处理发生时,我需要执行 存储过程 以从 视图中检索(SELECT那些可以现在 处理的请求,并更新(UPDATE)相应的记录,并带有表示已被我的应用程序的线程检索到的标志。但是,由于这将是一个高并发场景,因此可能会发生两件事:

1)可以在我从数据库中读取记录时放置新请求;

2)如果第二个线程访问SELECTUPDATE语句之间的数据,则我的应用程序的不同线程可以检索相同的请求。

问题1)实际上不是问题,因为这些请求将由后来访问数据的线程检索和处理。问题当然是第二种情况,我必须尽我所能避免。我怎样才能真正确保访问数据库的其他线程无法在未提交UPDATE语句时从视图中读取记录,但是,保持向行添加行的能力涉及的表格(情况1))?

0 个答案:

没有答案