济南网站建设制作,建设监理继续教育网站,wordpress+dux+高亮,重庆机有哪些网站建设公司二、完整的锁兼容性矩阵(见下图) 对上图的是代码说明#xff1a;见下图。 三、下表列出了数据库引擎可以锁定的资源。 名称 资源 缩写 编码 呈现锁定时#xff0c;描述该资源的方式 说明 数据行 RID RID 9 文件编号#xff1a;分页编号#xff1a;Slot编号 用于…二、完整的锁兼容性矩阵(见下图) 对上图的是代码说明见下图。 三、下表列出了数据库引擎可以锁定的资源。 名称 资源 缩写 编码 呈现锁定时描述该资源的方式 说明 数据行 RID RID 9 文件编号分页编号Slot编号 用于锁定堆中的单个行的行标识符。 索引键 KEY KEY 7 6字节哈希值 索引中用于保护可序列化事务中的键范围的行锁。 分页 PAGE PAG 6 文件编号分页编号 数据库中的 8 KB 页例如数据页或索引页。 范围 EXTENT EXT 8 文件编号范围的第一个分页的编号 一组连续的八页例如数据页或索引页。 HoBT 堆或 B 树。 用于保护没有聚集索引的表中的 B 树索引或堆数据页的锁。 数据表 TABLE TAB 5 数据表IDOBJID字段 包括所有数据和索引的整个表。 文件 FILE FIL 3 文件编号 数据库文件。 应用程序 APPLICATION APP 10 6字节哈希值 应用程序专用的资源。 METADATA 元数据锁。 ALLOCATION_UNIT 分配单元。 数据库 DATABASE DB 2 数据库代码DBID字段 整个数据库。 索引 IDX 4 Db_id:object_id:index_id相关的其他资源 索引中的数据行锁定 四、SQL SERVER要锁定资源时默认是从最底级开始锁起例如索引键值数据行以避免大范围锁定以避免影响其他人同时访问该范围内的其他数据但是当内存不足时SQL SERVER会自动扩大锁定范围以减低管理锁定的负荷。下面我们来看一个示例。 --建立SP_LOCK输出缓存表if exists( select * from tempdb..sysobjects where name like #temp% and type u) begin drop table #temp create table #temp(spid int,dbid int ,objid int,indid int,type varchar(3),resource varchar(20) ,mode varchar(20),status varchar(5)) end begin tran update WBK_PDE_head set [COP_EMS_NO]abcde where wbook_noBE404942850177 insert #temp exec sp_lock spid commit tran -----获取dbid --select DB_ID(Test) --只查看定制的数据库的相关资源,sql 2008 select spid,数据库DB_NAME(dbid),对象OBJECT_NAME(objid), 索引(select name from sysindexes where IDOBJID and indidt.indid ), TYPE,resource,mode,status from #temp t where dbid28 order by dbid,objid,indid --- ---以SQL 2005的sys.indexes表查询相关数据 select spid,数据库DB_NAME(dbid),对象OBJECT_NAME(objid), 索引(select name from sys.indexes where object_idOBJID and index_idt.indid ), TYPE,resource,mode,status from #temp t where dbid28 order by dbid,objid,indid 说明 1.建立临时表#Temp用以存储系统存储过程sp_lock输出的数据 2.开启事务然后更新数据(update)但不去确认事务数据库会锁定相关对象将sp_lock所呈现的相关数据插入到#Temp表中并将结果查询出来。 在查询分析器中执行以下代码 select a.*,b.name from #temp a left join sysobjects b on a.objidb.id order by a.type 图如下示: 另外的示例可以参见SQL SERVER的锁机制一——概述锁的种类与范围中的“示例代码二”相内容。转载于:https://www.cnblogs.com/lj820403/p/7246622.html