是否可以在纯Groovy中锁定UPDATE事务以进行写入(可以自由阅读)?
DB背后是MSSQL。
我看到有很多方法可以用Java或者程序级别来完成,但我对groovy方式很感兴趣。
答案 0 :(得分:1)
可能使用乐观的事务隔离级别:READ COMMITTED SNAPSHOT或SNAPSHOT。他们使用行版本控制而不是共享锁,因此当更新行(并使用独占锁定锁定)时,其内容将复制到tempdb中的版本存储中,因此其他进程不会等待更新完成,而只是从版本存储中读取以前的版本或行。
以下是有关快照隔离级别的更多信息:https://msdn.microsoft.com/en-us/library/tcbchxcb(v=vs.110).aspx
由于它们都需要tempdb中的Version Store,因此无法在连接中指定它们,而不是需要ALTER DATABASE:https://technet.microsoft.com/en-us/library/ms175095(v=sql.105).aspx