2016-11-28 88 views
0

换句话说,获取锁的步骤是什么?另外,当'WITH(Nolock)'提示被添加到查询/'Read Uncommitted'隔离级别被使用时,这是否可以避免与获取锁有关的全部或部分开销?在SQL Server中获取锁时实际发生了什么?

+1

[影响SELECT语句NOLOCK提示的(可能的重复http://stackoverflow.com/questions/210171/effect-of-nolock-hint- in-select-statements) –

+3

请看这里https://www.brentozar.com/sql/locking-and-blocking-in-sql-server/大量有用的信息。 –

+0

'NOLOCK'表示* gimme脏数据*,而不是*避免锁*。开销不是由锁造成的,它们是由未经优化的语句或使用访问不需要的数据造成的。您可以使用快照隔离来避免锁定,但具有*更高的IO开销。 –

回答

0

这对于一个特定的答案来说太大了,但简而言之,SQL Server将根据它的请求使用各种类型的锁。 select可能获取一种类型的锁,更新将获取另一种类型的锁。

此链接在这个问题上有很好的101。 SQL Server locking Basics

而这其中也

Another good locking read

相关问题