有没有人对SQL Server事务隔离级别有很好的比喻? (SQL 2005向上)
答案 0 :(得分:5)
我能够使用的最佳类比是源代码控制和构建应用程序。结账是锁定,构建是交易。
我之前没有写过,所以以下只是我使用的概念的简短摘要。就像任何类比一样,如果你把它拉得太远就会崩溃。
Read Committed - 代码已签出(锁定),您无法在签入代码之前构建代码(事务)。
Read Uncommitted - 您可以看到代码,但您不知道它是旧版本还是更新版本。构建可能有效或可能无效,具体取决于是否已检入所有代码。
可重复读取 - 在构建过程中无法检出文件,但如果文件不影响构建,则可以将文件添加到项目中。
Serializable - 在构建过程中无法检出或添加文件;整个项目正在使用/检出(范围锁定)。
快照 - 用户使用标记为发布的文件,但没有看到下一版本的更改。