如何查找默认的全局表锁定提示?
-- 问题
- 是否有返回此类信息的 DMV/DMF(动态管理 View /函数)?
- 还有,有没有办法更改默认的锁定提示?
目前,我几乎在所有地方都添加了 nolock
提示以防止锁定。
我想通过将默认锁定提示更改为 nolock
来避免这样做,这样现有的存储过程就不需要更改。
最佳答案
没有全局设置。默认始终是 READ COMMITTED
可以在
- session ,批处理使用 [
SET TRANSACTION ISOLATION LEVEL
][] - 表格使用table hints
- 使用 ALTER DATABASE ..xxSNAPSHOTxx 的快照类型的数据库级别
NOLOCK 无处不在misguided这里也是:
- Is the NOLOCK (Sql Server hint) bad practice?
- When is it appropriate to use NOLOCK?
- Get rid of those NOLOCK hints…
- Why using NOLOCK is bad..
编辑:在评论查询超时后...
带有 NOLOCK 的查询仍然会消耗大量的 CPU 和 IO 资源。锁定不是什么大问题。如果是,那么另一个查询花费的时间太长,可能消耗了大量的 CPU 和 IO 资源...
关于sql-server-2005 - SQL Server 2005/2008 上的默认表锁定提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3873076/