我SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED在大多数常规SQL查询中使用了大多数方法,主要是因为这是在最初学习该语言时钻到我身上的。
根据我的理解,此隔离级别的行为方式与WITH (NO LOCK)我曾经倾向于使用的方式相同SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED。
- 有没有时间我应该
WITH (NO LOCK)用完SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED。 - 是否
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED阻止其他用户被锁定在我正在读取的表之外? - 如果
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED用于停止锁,但是我仅在读取数据,那么使用它有什么意义?只是系统密集型查询会生成锁吗?在运行将在5到10秒内返回的查询时,是否值得使用它? - 我被告知不要
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED在读取将用于更新的数据时使用,大概是为了避免更新脏数据。这是唯一的原因吗? - 对于我正在处理的数据库类型,有一个生产和测试环境。我们很少会查询生产环境,但是在需要时,通常会
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED在查询中使用它。我知道这样做可能会导致脏读。除了接收可能不会最终提交给数据库的数据(因此将我的结果排除在外)之外,还有哪些其他类型的“脏读”是可能的?
很抱歉出现大量问题。
READ UNCOMMITTED在任何地方都使用,就像我不会WITH (NOLOCK)在所有地方都使用(本质上是同一件事)一样,使用blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere