SQL Server中表锁定的的原理及解锁演示.docVIP

  • 0
  • 0
  • 约4.12千字
  • 约 8页
  • 2017-08-20 发布于浙江
  • 举报

SQL Server中表锁定的的原理及解锁演示.doc

SQL Server中表锁定的的原理及解锁演示

有几个朋友留言建议结合例子来演示一下, 上篇已经说过锁的几种类型, 可以利用系统动态视图sys.dm_tran_locks查看到,重要的栏位如下: resource_type 被锁的资源类型(Database, FILE, Object,PAGE,KEY,EXTENT,RID,APPLICATION,METADATA,HOBT,APPOCATION_UNIT) request_mode 锁的类型(共享锁,更新锁,排它锁, 架构锁等) resource_description 资源描述 request_session_id Request session ID 一: 下面以AdventureWorks2008为示例数据库做简要的说明, 过滤掉一般的数据库的共享锁, 作为示例必须要看到锁, 所以用WITH(HOLDLOCK)来保持锁. 1. Shared locks (S) 共享锁 USE AdventureWorks2008 BEGIN TRAN select * from Sales.SalesOrderHeader WITH(HOLDLOCK) where SalesOrderID=43662 SELECT resource_type, request_mode, resource_description, request_session_id, DB_NAME(resource_database_id)as resource_database FROM sys.dm_tran_locks WHERE resource_type DATABASE --ROLLBACK TRAN 在事务回滚之前, 查看锁的类型: 其他session对Table只读, 不能更新, 在开一个新的session测试: select * from Sales.SalesOrderHeader where SalesOrderID=43662 go update Sales.SalesOrderHeader set OrderDate=GETDATE() where SalesOrderID=43662 select可以正常执行, update语句一直处于等待状态, 等待上面的session释放锁. 2. Update locks (U): 更新锁是共享锁和独占锁的组合.用UPDLOCK保持更新锁 USE AdventureWorks2008 BEGIN TRAN select * from Sales.SalesOrderHeader WITH(UPDLOCK) where SalesOrderID=43662 SELECT resource_type, request_mode, resource_description, request_session_id,DB_NAME(resource_database_id)as resource_database FROM sys.dm_tran_locks WHERE resource_type DATABASE ROLLBACK TRAN 查看到锁的信息: 3.Exclusive locks (X): 独占锁是为了锁定数据被一个session修改的数据, 而不能够被另外的session修改. 只能指定NOLOCK来读取. USE AdventureWorks2008 BEGIN TRAN update Sales.SalesOrderHeader set ShipDate=GETDATE() where SalesOrderID=43662 SELECT resource_type, request_mode, resource_description, request_session_id,DB_NAME(resource_database_id)as resource_database--,* FROM sys.dm_tran_locks WHERE resource_type DATABASE ROLLBACK TRAN 查看锁: 4.Intent locks (I): 意向锁用于建立锁的层次结构. 意向锁包含三种类型:意向共享 (IS)、意向排他 (IX) 和意向排他共享 (SIX)。 数据库引擎使用意向锁来保护共享锁(S 锁)或排他锁(X 锁)放置在锁层次结构的底层资源上。 意向锁之所以命名为意向锁,是因为在较低级别锁前可获取它们,因此会通知意向将锁放置在较低级别上。 意向锁有两种

文档评论(0)

1亿VIP精品文档

相关文档