我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