深入解析MS-SQL锁机制
执行数据更新命令时,SQL Server会自动使用独占锁。当对象上有其他锁存在时,无法对其加独占锁。用于保护读取操作的共享锁的保持时间取决于事务隔离级别。采用 READ COMMITTED 的默认事务隔离级别时,只在读取页的期间内控制共享锁。如果指定 HOLDLOCK 提示或者将事务隔离级别设置为 REPEATABLE READ 或 SERIALIZABLE,则直到事务结束才释放锁。默认情况下没有超时间隔,但是一些应用程序设置超时间隔以防止无限期等待 可以使用SET DEADLOCK_PRIORITY控制在发生死锁情况时会话的反应方式。当语句等待的时间大于 LOCK_TIMEOUT 设置时,系统将自动取消阻塞的语句,并给应用程序返回"已超过了锁请求超时时段"的 1222 号错误信息 3) 设置事务隔离级别。4 ) 对 SELECT、INSERT、UPDATE 和 DELETE 语句使用表级锁定提示。
用户评论