- 在上一篇中忘记了一个细节。Range T-K 到底代表了什么?Range T-K Lock 代表了在 SERIALIZABLE 隔离级别中,为了保护范围内的数据不被并发的事务影响而使用的一类锁模式(避...
- 在这篇随笔中,我们的主要关注点在 Key-Range Lock。Key-Range Lock有 S-S、S-U、I-N、X-X几种情况。我们一个一个来说,力求明白。遗憾的是,这里可能会比较冗长,那么死...
- @chenlulouis
我的意思是,这些数据是被某一个事务提交的。不是特指当前的事务。总之就是他们不是Uncommitted状态。 - @遗忘海岸
X代表的是Exclusive Lock。S代表的是Shared Lock
图例忘了,简单描述吧:
橙色:事务
绿色表格:已经提交了的数据
灰色表格:没有提交的数据
禁止图标:该操作无法进行,需要等待。 - 最近在项目中进行压力测试遇到了数据库的死锁问题,简言之,如下的代码在 SERIALIZABLE 隔离级别造成了死锁:SELECT @findCount=COUNT(id) FROM MyTableWH...
- @桀骜的灵魂
你说的很有道理。这一定会修正一些我的错误理解。我需要认真阅读一下 P of EAA - 有些话,哪一篇博客上也不会说的。可能是因为这些话实在是太愚蠢了,不值得一提,更不可能有人去这样做。但是我恰恰成为了这个愚蠢的人。这些愚蠢事迹应该好好记录一下,吃一堑长一智。今天的话题是,有一个网站,由...
- 不对吧,这种写法没有错误。虽然抛出异常,但是堆栈解退之前一定会调用 ((IDisposable)closableObj).Dispose(); 方法。
- 每次在写 public 方法的时候第一件事就是参数验证。以往,都会有这样的代码出现:但是方法的参数表有的时候比较长,逻辑判断的组合也比较多,此时这种语句的数目有时多大6-7个。这样的代码喧宾夺主,可读...










