SQLSERVER中KeyHashValue的作用(下)
SQLSERVER中KeyHashValue的作用(下)
昨天中午跟高文佳童鞋讨论了KeyHashValue的作用,到最后还是没有讨论出结果
虽然对于keyhashvalue的研究还有很多问题还没有解决,但是基本可以确定“keyhashvalue是用来锁定资源的”
而不是我之前说的,在seek的时候根据这个KeyHashValue来快速查找到对应的记录
误导大家了,真的不好意思!!!!
资源 说明
RID 用于锁定堆(heap)中的某一行
KEY 用于锁定索引上的某一行,或者某个索引键
PAGE 锁定数据库中的一个8KB页,例如数据页或索引页
EXTENT 一组连续的8页(区)
HOBT 锁定整个堆或B树的锁
TABLE 锁定包括所有数据和索引的整个表
FILE 数据库文件
APPLICATION 应用程序专用的资源
METADATA 元数据锁
ALLOCATION_UNIT 分配单元
DATABASE 整个数据库
KEY是靠生成的这个KeyHashValue来进行锁定索引中的行
KEY 用于锁定索引上的某一行
行锁管理:
KeyHashValue 是 SQL Server 内部使用的一个哈希值,通常在动态管理视图(如 sys.dm_tran_locks)中看到。
这个值表示资源的哈希标识符,用于帮助 SQL Server 管理和查找锁的资源。
这并不意味着 KeyHashValue 本身直接用于行锁的管理,而是更多地用于表示某种资源标识符,使锁管理更高效。
网上有很多相关的文章:
例如
建立索引的时候为什麽有900bytes的限制
为了性能,不可能让您在比较大的数据类型下,而且存储了非常多的数据的字段上建立索引
因为这样做的话,要计算出KeyHashValue就会非常消耗性能
这篇文章:Improvement in minimizing lockhash key collisions in SQL Server 2008R2 and its impact on concurrency
Since the key to a row could be as large as 900 bytes, using the real key values would have inflicted larger memory consumption.
引入
The solution to this problem was found when designing SQL server 7.0 in 1996 and 1997 by using the key of the row and apply
a hash algorithm to it which then results in a 6 byte long lockhash value
我将这些文章整理到我的文章里:undocumented virtual column %%lockres%%
在SQLSERVER2005下跟SQLSERVER2012下,建立相同的聚集索引,你会看到在SQL2005下,表的聚集索引页面有KeyHashValue
但是在SQL2012下,表的聚集索引页面的KeyHashValue列全部为NULL
由于我没有SQL2008,所以没有测试SQL2008,估计从SQL2008开始,KeyHashValue开始有些变化了
在SQL2005里,你使用dbcc page查看数据页面,数据页面里的每行记录是没有显示KeyHashValue的,不知道要打开哪个跟踪标记才能看到
在SQL2005里唯一能看到数据页面中的keyhashvalue只有使用%%lockres%%
而在SQL2012,不用做任何设置,使用dbcc page就可以看到KeyHashValue
当然也可以用%%lockres%%:
1 SELECT %%lockres%% AS '数据页的keyhashvalue' FROM 表名
页面126是数据页面
1 DBCC TRACEON(3604,-1) 2 GO 3 DBCC PAGE(testhashkey,1,126,3) 4 GO
Slot 0 Offset 0x0 Length 0 Length (physical) 0
KeyHashValue = (8194443284a0)
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
SQL2012最大的改进是提示非常清晰,而且以前的SQLSERVER版本没有显示出来的东西都给你显示出来了,
这样就不用做那么多系统表的表连接,如果是SQL2012以前版本要查看某一个信息的时候又要做
这个系统表的表连接又要做那个表的表连接才能得出这个自己想看的东西,非常繁琐
例如如下改进:
聚集索引页面的显示,SQL2005是没有Row Size这一列的
下面的所有测试都是基于SQLSERVER2005 SP4 个人开发版
聚集索引
创建聚集索引的时候无论是唯一还是不唯一都会产生KeyHashValue
但是为了实验的方便,我这里只创建唯一聚集索引,因为不唯一的话会产生range locks不方便查看结果
详细请参考文章:Range locks
脚本:
1 USE master 2 GO 3 CREATE DATABASE testhashkey 4 GO 5 6 USE testhashkey 7 GO 8 9 -------------------------------------------- 10 --测试聚集索引 11 CREATE TABLE testcluster 12 ( 13 a NVARCHAR(3800) NOT NULL , 14 b INT NOT NULL 15 ) 16 GO 17 18 --这里一定要是唯一的 19 CREATE UNIQUE CLUSTERED INDEX ucl ON testcluster(b) 20 GO 21 22 INSERT testcluster 23 SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1 UNION ALL 24 SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2
查看表情况的脚本
1 CREATE TABLE DBCCResult ( 2 PageFID NVARCHAR(200), 3 PagePID NVARCHAR(200), 4 IAMFID NVARCHAR(200), 5 IAMPID NVARCHAR(200), 6 ObjectID NVARCHAR(200), 7 IndexID NVARCHAR(200), 8 PartitionNumber NVARCHAR(200), 9 PartitionID NVARCHAR(200), 10 iam_chain_type NVARCHAR(200), 11 PageType NVARCHAR(200), 12 IndexLevel NVARCHAR(200), 13 NextPageFID NVARCHAR(200), 14 NextPagePID NVARCHAR(200), 15 PrevPageFID NVARCHAR(200), 16 PrevPagePID NVARCHAR(200) 17 ) 18 19 TRUNCATE TABLE [dbo].[DBCCResult] 20 21 INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testcluster,-1) ') 22 23 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC
聚集索引页面
其实我这里暂时还不清楚聚集索引页面的KeyHashValue有什么作用,为什麽这样说??请往下看
我们看一下表中的每行记录的所产生的keyhashvalue
1 select %%lockres%% AS '数据页的keyhashvalue' from testcluster
大家可以看到,无论是索引行还是数据行都有KeyHashValue
我们使用下面语句进行测试,查看SQLSERVER锁定的资源
1 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 2 GO 3 BEGIN TRANSACTION 4 SELECT b FROM [dbo].[testcluster] WHERE [b]=1 5 --COMMIT TRAN 6 7 SELECT resource_type , 8 resource_database_id , 9 resource_description , 10 resource_associated_entity_id , 11 request_mode , 12 request_type , 13 request_status 14 FROM sys.dm_tran_locks 15 WHERE [resource_database_id]=DB_ID('testhashkey') 16 ORDER BY [resource_type]
为什麽我刚才说:不清楚聚集索引页面的KeyHashValue有什么作用???
大家可以用下面的脚本来测试一下,无论我select还是update,DepartmentID BETWEEN 0 AND 122之间
使用sys.dm_tran_locks视图来查询,发现resource_description字段都没有显示聚集索引页面的keyhashvalue,只显示数据页面
的keyhashvalue,说明我在select和update的时候没有用到聚集索引页面的keyhashvalue,这里我不知道在什么情况下会用到
聚集索引页面的KeyHashValue
脚本如下:
1 USE master 2 GO 3 CREATE DATABASE practice 4 GO 5 6 USE practice 7 GO 8 9 --只有聚集索引 10 CREATE TABLE Department( 11 DepartmentID int IDENTITY(1,1) NOT NULL PRIMARY KEY, 12 Name NVARCHAR(200) NOT NULL, 13 GroupName NVARCHAR(200) NOT NULL, 14 Company NVARCHAR(300), 15 ModifiedDate datetime NOT NULL DEFAULT (getdate()) 16 ) 17 18 INSERT INTO Department(name,[Company],groupname) VALUES('销售部','中国你好有限公司XX分公司','销售组') 19 GO 100000 20 21 CREATE TABLE DBCCResult ( 22 PageFID NVARCHAR(200), 23 PagePID NVARCHAR(200), 24 IAMFID NVARCHAR(200), 25 IAMPID NVARCHAR(200), 26 ObjectID NVARCHAR(200), 27 IndexID NVARCHAR(200), 28 PartitionNumber NVARCHAR(200), 29 PartitionID NVARCHAR(200), 30 iam_chain_type NVARCHAR(200), 31 PageType NVARCHAR(200), 32 IndexLevel NVARCHAR(200), 33 NextPageFID NVARCHAR(200), 34 NextPagePID NVARCHAR(200), 35 PrevPageFID NVARCHAR(200), 36 PrevPagePID NVARCHAR(200) 37 ) 38 39 TRUNCATE TABLE [dbo].[DBCCResult] 40 41 INSERT INTO DBCCResult EXEC ('DBCC IND(practice,Department,-1) ') 42 43 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 44 45 DBCC TRACEON(3604,-1) 46 GO 47 DBCC PAGE(practice,1,114,3) 48 GO 49 50 select %%lockres%% AS '数据页的keyhashvalue' from Department 51 52 53 54 55 56 57 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 58 GO 59 BEGIN TRANSACTION 60 SELECT DepartmentID FROM Department WHERE DepartmentID BETWEEN 0 AND 122 61 --COMMIT TRAN 62 63 SELECT resource_type , 64 resource_database_id , 65 resource_description , 66 resource_associated_entity_id , 67 request_mode , 68 request_type , 69 request_status 70 FROM sys.dm_tran_locks 71 WHERE [resource_database_id]=DB_ID('practice') 72 AND [resource_description] LIKE '%b03b%' 73 ORDER BY [resource_type]
我做了一个大胆的假设:其实聚集索引页面的keyhashvalue是没有用的!!!
原因一:
如果把刚才的脚本在SQL2012下运行,你会发现聚集索引的KeyHashValue列全部为NULL
原因二:
就是我上面的测试脚本,无论我select还是update,DepartmentID BETWEEN 0 AND 122之间
使用sys.dm_tran_locks视图来查询,发现resource_description字段都没有显示聚集索引页面的keyhashvalue,只显示数据页面
的KeyHashValue
原因三:
就是昨天跟高文佳童鞋讨论的时候,他也发现了有时候在聚集索引里也会看到KeyHashValue列全部为NULL
我之前在SQLSERVER2005下也测试过,确实是这样
原因四:
可能为了不改动代码,原先SQLSERVER团队设计的时候只需要非聚集索引有KeyHashValue就可以了,而聚集索引不需要KeyHashValue的
但是如果是这样,为了减少改动,不写两套代码,或者为了某种兼容性(与前面版本兼容),而不删除聚集索引的KeyHashValue
非聚集索引
非聚集索引表的非聚集索引页有KeyHashValue,但是数据页是没有KeyHashValue的
创建非聚集索引,这里我也是指定唯一的
脚本:
1 --测试非聚集索引 2 USE [testhashkey] 3 GO 4 CREATE TABLE testnoncluster 5 ( 6 a NVARCHAR(3800) NOT NULL , 7 b INT NOT NULL 8 ) 9 GO 10 11 CREATE UNIQUE NONCLUSTERED INDEX ucil ON testnoncluster(b) 12 GO 13 14 INSERT testnoncluster 15 SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1 UNION ALL 16 SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2 17 18 19 SELECT * FROM [dbo].[testnoncluster]
查看表情况的脚本
1 TRUNCATE TABLE [dbo].[DBCCResult] 2 3 INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testnoncluster,-1) ') 4 5 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 6 7 DBCC TRACEON(3604,-1) 8 GO 9 DBCC PAGE(testhashkey,1,77,3) 10 GO
非聚集索引页面
我们看一下表中的每行记录的所产生的keyhashvalue
1 select %%lockres%% AS '数据页的keyhashvalue' from testnoncluster
大家可以看到,这里只显示了行记录的FID:PID:RID,并没有显示keyhashvalue
我们使用下面语句进行测试,查看SQLSERVER锁定的资源
1 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 2 GO 3 BEGIN TRANSACTION 4 SELECT b FROM [dbo].[testnoncluster] WHERE [b]=1 5 --COMMIT TRAN 6 7 SELECT resource_type , 8 resource_database_id , 9 resource_description , 10 resource_associated_entity_id , 11 request_mode , 12 request_type , 13 request_status 14 FROM sys.dm_tran_locks 15 WHERE [resource_database_id]=DB_ID('testhashkey') 16 ORDER BY [resource_type]
我们使用下面脚本创建一个非聚集索引表testnoncluster2
1 --测试堆表和非聚集索引表的数据页也有keyhashvalue 2 USE [testhashkey] 3 GO 4 5 6 CREATE TABLE testnoncluster2 7 ( 8 a NVARCHAR(3800) NOT NULL , 9 b INT NOT NULL, 10 c INT NOT NULL 11 ) 12 GO 13 14 15 16 CREATE UNIQUE NONCLUSTERED INDEX ucil ON testnoncluster2(b) 17 GO 18 19 INSERT testnoncluster2 20 SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1,1 UNION ALL 21 SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2,2 22 23 24 25 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 26 GO 27 BEGIN TRANSACTION 28 DELETE FROM [dbo].[testnoncluster2] WHERE [c]=1 29 --ROLLBACK TRAN 30 31 SELECT resource_type , 32 resource_database_id , 33 resource_description , 34 resource_associated_entity_id , 35 request_mode , 36 request_type , 37 request_status 38 FROM sys.dm_tran_locks 39 WHERE [resource_database_id]=DB_ID('testhashkey') 40 ORDER BY [resource_type] 41 42 43 44 45 select %%lockres%% AS '数据页的keyhashvalue' from testnoncluster2
这次删除非聚集索引表的一行
为了保证我的结论的正确性,我在SQLSERVER2012里也用上面的脚本测试了一下,创建了表testnoncluster2
脚本:
1 --测试堆表和非聚集索引表的数据页也有keyhashvalue 2 USE [testhashkey] 3 GO 4 5 6 7 CREATE TABLE testnoncluster2 8 ( 9 a NVARCHAR(3800) NOT NULL , 10 b INT NOT NULL, 11 c INT NOT NULL 12 ) 13 GO 14 15 16 17 CREATE UNIQUE NONCLUSTERED INDEX ucil ON testnoncluster2(b) 18 GO 19 20 INSERT testnoncluster2 21 SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1,1 UNION ALL 22 SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2,2 23 24 25 26 27 28 TRUNCATE TABLE [dbo].[DBCCResult] 29 30 INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testnoncluster2,-1) ') 31 32 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 33 34 DBCC TRACEON(3604,-1) 35 GO 36 DBCC PAGE(testhashkey,1,165,3) 37 GO
数据页面165
1 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 2 3 PAGE: (1:165) 4 5 6 BUFFER: 7 8 9 BUF @0x049D10A8 10 11 bpage = 0x14784000 bhash = 0x00000000 bpageno = (1:165) 12 bdbid = 7 breferences = 0 bcputicks = 0 13 bsampleCount = 0 bUse1 = 23721 bstat = 0xb 14 blog = 0xdb215acc bnext = 0x00000000 15 16 PAGE HEADER: 17 18 19 Page @0x14784000 20 21 m_pageId = (1:165) m_headerVersion = 1 m_type = 1 22 m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x8000 23 m_objId (AllocUnitId.idObj) = 90 m_indexId (AllocUnitId.idInd) = 256 24 Metadata: AllocUnitId = 72057594043826176 25 Metadata: PartitionId = 72057594039238656 Metadata: IndexId = 0 26 Metadata: ObjectId = 629577281 m_prevPage = (0:0) m_nextPage = (0:0) 27 pminlen = 12 m_slotCnt = 1 m_freeCnt = 1071 28 m_freeData = 7119 m_reservedCnt = 0 m_lsn = (35:211:62) 29 m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0 30 m_tornBits = 0 DB Frag ID = 1 31 32 Allocation Status 33 34 GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED 35 PFS (1:1) = 0x63 MIXED_EXT ALLOCATED 95_PCT_FULL DIFF (1:6) = CHANGED 36 ML (1:7) = NOT MIN_LOGGED 37 38 Slot 0 Offset 0x60 Length 7023 39 40 Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS 41 Record Size = 7023 42 Memory Dump @0x0FB7C060 43 44 00000000: 30000c00 01000000 01000000 03000001 006f1b31 0................o.1 45 00000014: 00310061 00610061 00610061 00610061 00610061 .1.a.a.a.a.a.a.a.a.a 46 00000028: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 47 0000003C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 48 00000050: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 49 00000064: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 50 00000078: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 51 0000008C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 52 000000A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 53 000000B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 54 000000C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 55 000000DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 56 000000F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 57 00000104: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 58 00000118: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 59 0000012C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 60 00000140: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 61 00000154: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 62 00000168: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 63 0000017C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 64 00000190: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 65 000001A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 66 000001B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 67 000001CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 68 000001E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 69 000001F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 70 00000208: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 71 0000021C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 72 00000230: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 73 00000244: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 74 00000258: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 75 0000026C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 76 00000280: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 77 00000294: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 78 000002A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 79 000002BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 80 000002D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 81 000002E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 82 000002F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 83 0000030C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 84 00000320: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 85 00000334: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 86 00000348: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 87 0000035C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 88 00000370: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 89 00000384: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 90 00000398: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 91 000003AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 92 000003C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 93 000003D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 94 000003E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 95 000003FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 96 00000410: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 97 00000424: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 98 00000438: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 99 0000044C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 100 00000460: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 101 00000474: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 102 00000488: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 103 0000049C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 104 000004B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 105 000004C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 106 000004D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 107 000004EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 108 00000500: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 109 00000514: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 110 00000528: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 111 0000053C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 112 00000550: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 113 00000564: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 114 00000578: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 115 0000058C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 116 000005A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 117 000005B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 118 000005C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 119 000005DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 120 000005F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 121 00000604: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 122 00000618: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 123 0000062C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 124 00000640: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 125 00000654: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 126 00000668: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 127 0000067C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 128 00000690: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 129 000006A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 130 000006B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 131 000006CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 132 000006E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 133 000006F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 134 00000708: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 135 0000071C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 136 00000730: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 137 00000744: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 138 00000758: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 139 0000076C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 140 00000780: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 141 00000794: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 142 000007A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 143 000007BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 144 000007D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 145 000007E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 146 000007F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 147 0000080C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 148 00000820: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 149 00000834: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 150 00000848: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 151 0000085C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 152 00000870: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 153 00000884: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 154 00000898: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 155 000008AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 156 000008C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 157 000008D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 158 000008E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 159 000008FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 160 00000910: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 161 00000924: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 162 00000938: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 163 0000094C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 164 00000960: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 165 00000974: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 166 00000988: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 167 0000099C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 168 000009B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 169 000009C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 170 000009D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 171 000009EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 172 00000A00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 173 00000A14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 174 00000A28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 175 00000A3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 176 00000A50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 177 00000A64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 178 00000A78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 179 00000A8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 180 00000AA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 181 00000AB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 182 00000AC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 183 00000ADC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 184 00000AF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 185 00000B04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 186 00000B18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 187 00000B2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 188 00000B40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 189 00000B54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 190 00000B68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 191 00000B7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 192 00000B90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 193 00000BA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 194 00000BB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 195 00000BCC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 196 00000BE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 197 00000BF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 198 00000C08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 199 00000C1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 200 00000C30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 201 00000C44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 202 00000C58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 203 00000C6C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 204 00000C80: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 205 00000C94: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 206 00000CA8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 207 00000CBC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 208 00000CD0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 209 00000CE4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 210 00000CF8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 211 00000D0C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 212 00000D20: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 213 00000D34: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 214 00000D48: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 215 00000D5C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 216 00000D70: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 217 00000D84: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 218 00000D98: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 219 00000DAC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 220 00000DC0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 221 00000DD4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 222 00000DE8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 223 00000DFC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 224 00000E10: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 225 00000E24: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 226 00000E38: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 227 00000E4C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 228 00000E60: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 229 00000E74: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 230 00000E88: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 231 00000E9C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 232 00000EB0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 233 00000EC4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 234 00000ED8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 235 00000EEC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 236 00000F00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 237 00000F14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 238 00000F28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 239 00000F3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 240 00000F50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 241 00000F64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 242 00000F78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 243 00000F8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 244 00000FA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 245 00000FB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 246 00000FC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 247 00000FDC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 248 00000FF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 249 00001004: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 250 00001018: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 251 0000102C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 252 00001040: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 253 00001054: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 254 00001068: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 255 0000107C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 256 00001090: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 257 000010A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 258 000010B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 259 000010CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 260 000010E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 261 000010F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 262 00001108: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 263 0000111C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 264 00001130: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 265 00001144: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 266 00001158: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 267 0000116C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 268 00001180: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 269 00001194: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 270 000011A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 271 000011BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 272 000011D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 273 000011E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 274 000011F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 275 0000120C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 276 00001220: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 277 00001234: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 278 00001248: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 279 0000125C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 280 00001270: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 281 00001284: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 282 00001298: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 283 000012AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 284 000012C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 285 000012D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 286 000012E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 287 000012FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 288 00001310: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 289 00001324: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 290 00001338: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 291 0000134C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 292 00001360: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 293 00001374: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 294 00001388: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 295 0000139C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 296 000013B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 297 000013C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 298 000013D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 299 000013EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 300 00001400: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 301 00001414: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 302 00001428: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 303 0000143C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 304 00001450: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 305 00001464: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 306 00001478: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 307 0000148C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 308 000014A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 309 000014B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 310 000014C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 311 000014DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 312 000014F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 313 00001504: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 314 00001518: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 315 0000152C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 316 00001540: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 317 00001554: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 318 00001568: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 319 0000157C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 320 00001590: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 321 000015A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 322 000015B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 323 000015CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 324 000015E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 325 000015F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 326 00001608: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 327 0000161C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 328 00001630: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 329 00001644: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 330 00001658: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 331 0000166C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 332 00001680: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 333 00001694: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 334 000016A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 335 000016BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 336 000016D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 337 000016E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 338 000016F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 339 0000170C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 340 00001720: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 341 00001734: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 342 00001748: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 343 0000175C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 344 00001770: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 345 00001784: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 346 00001798: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 347 000017AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 348 000017C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 349 000017D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 350 000017E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 351 000017FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 352 00001810: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 353 00001824: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 354 00001838: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 355 0000184C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 356 00001860: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 357 00001874: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 358 00001888: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 359 0000189C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 360 000018B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 361 000018C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 362 000018D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 363 000018EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 364 00001900: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 365 00001914: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 366 00001928: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 367 0000193C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 368 00001950: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 369 00001964: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 370 00001978: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 371 0000198C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 372 000019A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 373 000019B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 374 000019C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 375 000019DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 376 000019F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 377 00001A04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 378 00001A18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 379 00001A2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 380 00001A40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 381 00001A54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 382 00001A68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 383 00001A7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 384 00001A90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 385 00001AA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 386 00001AB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 387 00001ACC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 388 00001AE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 389 00001AF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 390 00001B08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 391 00001B1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 392 00001B30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 393 00001B44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 394 00001B58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 395 00001B6C: 006100 .a. 396 397 Slot 0 Column 1 Offset 0x13 Length 7004 Length (physical) 7004 398 399 a = 11aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 400 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 401 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 402 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 403 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 404 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 405 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 406 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 407 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 408 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 409 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 410 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 411 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 412 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 413 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 414 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 415 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 416 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 417 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 418 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 419 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 420 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 421 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 422 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 423 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 424 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 425 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 426 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 427 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 428 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 429 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 430 aaa 431 432 Slot 0 Column 2 Offset 0x4 Length 4 Length (physical) 4 433 434 b = 1 435 436 Slot 0 Column 3 Offset 0x8 Length 4 Length (physical) 4 437 438 c = 1 439 440 441 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
发现数据页面165里面是没有keyhashvalue的,证明我在开头说的话没有错
非聚集索引表的非聚集索引页有keyhashvalue,但是数据页是没有keyhashvalue的
堆表
脚本:
1 --测试堆表 2 USE [testhashkey] 3 GO 4 5 CREATE TABLE testheap 6 ( 7 a NVARCHAR(3800) NOT NULL , 8 b INT NOT NULL, 9 c INT NOT NULL 10 ) 11 GO 12 13 14 15 16 INSERT testheap 17 SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1,1 UNION ALL 18 SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2,2 19 20 21 22 23 24 TRUNCATE TABLE [dbo].[DBCCResult] 25 26 INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testheap,-1) ') 27 28 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 29 30 DBCC TRACEON(3604,-1) 31 GO 32 DBCC PAGE(testhashkey,1,175,3) 33 GO
数据页面175
1 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 2 3 PAGE: (1:175) 4 5 6 BUFFER: 7 8 9 BUF @0x04A62018 10 11 bpage = 0x196A6000 bhash = 0x00000000 bpageno = (1:175) 12 bdbid = 7 breferences = 0 bcputicks = 0 13 bsampleCount = 0 bUse1 = 23982 bstat = 0xb 14 blog = 0x15acc bnext = 0x00000000 15 16 PAGE HEADER: 17 18 19 Page @0x196A6000 20 21 m_pageId = (1:175) m_headerVersion = 1 m_type = 1 22 m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x8000 23 m_objId (AllocUnitId.idObj) = 92 m_indexId (AllocUnitId.idInd) = 256 24 Metadata: AllocUnitId = 72057594043957248 25 Metadata: PartitionId = 72057594039369728 Metadata: IndexId = 0 26 Metadata: ObjectId = 645577338 m_prevPage = (0:0) m_nextPage = (0:0) 27 pminlen = 12 m_slotCnt = 1 m_freeCnt = 1071 28 m_freeData = 7119 m_reservedCnt = 0 m_lsn = (35:279:29) 29 m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0 30 m_tornBits = 0 DB Frag ID = 1 31 32 Allocation Status 33 34 GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED 35 PFS (1:1) = 0x63 MIXED_EXT ALLOCATED 95_PCT_FULL DIFF (1:6) = CHANGED 36 ML (1:7) = NOT MIN_LOGGED 37 38 Slot 0 Offset 0x60 Length 7023 39 40 Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS 41 Record Size = 7023 42 Memory Dump @0x102BC060 43 44 00000000: 30000c00 01000000 01000000 03000001 006f1b31 0................o.1 45 00000014: 00310061 00610061 00610061 00610061 00610061 .1.a.a.a.a.a.a.a.a.a 46 00000028: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 47 0000003C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 48 00000050: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 49 00000064: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 50 00000078: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 51 0000008C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 52 000000A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 53 000000B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 54 000000C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 55 000000DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 56 000000F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 57 00000104: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 58 00000118: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 59 0000012C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 60 00000140: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 61 00000154: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 62 00000168: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 63 0000017C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 64 00000190: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 65 000001A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 66 000001B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 67 000001CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 68 000001E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 69 000001F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 70 00000208: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 71 0000021C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 72 00000230: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 73 00000244: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 74 00000258: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 75 0000026C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 76 00000280: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 77 00000294: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 78 000002A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 79 000002BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 80 000002D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 81 000002E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 82 000002F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 83 0000030C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 84 00000320: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 85 00000334: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 86 00000348: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 87 0000035C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 88 00000370: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 89 00000384: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 90 00000398: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 91 000003AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 92 000003C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 93 000003D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 94 000003E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 95 000003FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 96 00000410: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 97 00000424: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 98 00000438: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 99 0000044C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 100 00000460: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 101 00000474: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 102 00000488: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 103 0000049C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 104 000004B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 105 000004C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 106 000004D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 107 000004EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 108 00000500: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 109 00000514: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 110 00000528: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 111 0000053C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 112 00000550: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 113 00000564: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 114 00000578: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 115 0000058C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 116 000005A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 117 000005B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 118 000005C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 119 000005DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 120 000005F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 121 00000604: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 122 00000618: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 123 0000062C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 124 00000640: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 125 00000654: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 126 00000668: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 127 0000067C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 128 00000690: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 129 000006A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 130 000006B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 131 000006CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 132 000006E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 133 000006F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 134 00000708: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 135 0000071C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 136 00000730: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 137 00000744: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 138 00000758: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 139 0000076C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 140 00000780: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 141 00000794: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 142 000007A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 143 000007BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 144 000007D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 145 000007E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 146 000007F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 147 0000080C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 148 00000820: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 149 00000834: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 150 00000848: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 151 0000085C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 152 00000870: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 153 00000884: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 154 00000898: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 155 000008AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 156 000008C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 157 000008D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 158 000008E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 159 000008FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 160 00000910: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 161 00000924: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 162 00000938: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 163 0000094C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 164 00000960: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 165 00000974: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 166 00000988: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 167 0000099C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 168 000009B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 169 000009C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 170 000009D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 171 000009EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 172 00000A00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 173 00000A14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 174 00000A28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 175 00000A3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 176 00000A50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 177 00000A64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 178 00000A78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 179 00000A8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 180 00000AA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 181 00000AB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 182 00000AC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 183 00000ADC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 184 00000AF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 185 00000B04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 186 00000B18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 187 00000B2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 188 00000B40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 189 00000B54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 190 00000B68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 191 00000B7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 192 00000B90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 193 00000BA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 194 00000BB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 195 00000BCC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 196 00000BE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 197 00000BF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 198 00000C08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 199 00000C1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 200 00000C30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 201 00000C44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 202 00000C58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 203 00000C6C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 204 00000C80: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 205 00000C94: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 206 00000CA8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 207 00000CBC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 208 00000CD0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 209 00000CE4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 210 00000CF8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 211 00000D0C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 212 00000D20: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 213 00000D34: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 214 00000D48: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 215 00000D5C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 216 00000D70: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 217 00000D84: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 218 00000D98: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 219 00000DAC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 220 00000DC0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 221 00000DD4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 222 00000DE8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 223 00000DFC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 224 00000E10: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 225 00000E24: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 226 00000E38: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 227 00000E4C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 228 00000E60: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 229 00000E74: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 230 00000E88: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 231 00000E9C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 232 00000EB0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 233 00000EC4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 234 00000ED8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 235 00000EEC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 236 00000F00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 237 00000F14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 238 00000F28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 239 00000F3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 240 00000F50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 241 00000F64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 242 00000F78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 243 00000F8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 244 00000FA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 245 00000FB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 246 00000FC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 247 00000FDC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 248 00000FF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 249 00001004: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 250 00001018: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 251 0000102C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 252 00001040: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 253 00001054: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 254 00001068: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 255 0000107C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 256 00001090: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 257 000010A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 258 000010B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 259 000010CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 260 000010E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 261 000010F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 262 00001108: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 263 0000111C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 264 00001130: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 265 00001144: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 266 00001158: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 267 0000116C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 268 00001180: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 269 00001194: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 270 000011A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 271 000011BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 272 000011D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 273 000011E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 274 000011F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 275 0000120C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 276 00001220: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 277 00001234: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 278 00001248: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 279 0000125C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 280 00001270: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 281 00001284: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 282 00001298: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 283 000012AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 284 000012C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 285 000012D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 286 000012E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 287 000012FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 288 00001310: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 289 00001324: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 290 00001338: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 291 0000134C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 292 00001360: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 293 00001374: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 294 00001388: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 295 0000139C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 296 000013B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 297 000013C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 298 000013D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 299 000013EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 300 00001400: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 301 00001414: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 302 00001428: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 303 0000143C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 304 00001450: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 305 00001464: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 306 00001478: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 307 0000148C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 308 000014A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 309 000014B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 310 000014C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 311 000014DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 312 000014F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 313 00001504: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 314 00001518: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 315 0000152C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 316 00001540: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 317 00001554: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 318 00001568: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 319 0000157C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 320 00001590: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 321 000015A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 322 000015B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 323 000015CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 324 000015E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 325 000015F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 326 00001608: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 327 0000161C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 328 00001630: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 329 00001644: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 330 00001658: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 331 0000166C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 332 00001680: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 333 00001694: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 334 000016A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 335 000016BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 336 000016D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 337 000016E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 338 000016F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 339 0000170C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 340 00001720: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 341 00001734: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 342 00001748: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 343 0000175C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 344 00001770: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 345 00001784: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 346 00001798: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 347 000017AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 348 000017C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 349 000017D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 350 000017E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 351 000017FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 352 00001810: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 353 00001824: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 354 00001838: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 355 0000184C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 356 00001860: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 357 00001874: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 358 00001888: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 359 0000189C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 360 000018B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 361 000018C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 362 000018D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 363 000018EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 364 00001900: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 365 00001914: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 366 00001928: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 367 0000193C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 368 00001950: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 369 00001964: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 370 00001978: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 371 0000198C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 372 000019A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 373 000019B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 374 000019C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 375 000019DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 376 000019F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 377 00001A04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 378 00001A18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 379 00001A2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 380 00001A40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 381 00001A54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 382 00001A68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 383 00001A7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 384 00001A90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 385 00001AA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 386 00001AB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 387 00001ACC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 388 00001AE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 389 00001AF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 390 00001B08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 391 00001B1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 392 00001B30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 393 00001B44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 394 00001B58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a 395 00001B6C: 006100 .a. 396 397 Slot 0 Column 1 Offset 0x13 Length 7004 Length (physical) 7004 398 399 a = 11aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 400 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 401 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 402 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 403 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 404 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 405 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 406 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 407 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 408 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 409 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 410 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 411 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 412 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 413 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 414 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 415 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 416 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 417 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 418 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 419 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 420 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 421 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 422 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 423 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 424 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 425 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 426 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 427 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 428 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 429 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 430 aaa 431 432 Slot 0 Column 2 Offset 0x4 Length 4 Length (physical) 4 433 434 b = 1 435 436 Slot 0 Column 3 Offset 0x8 Length 4 Length (physical) 4 437 438 c = 1 439 440 441 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
堆表的数据页面也是没有keyhashvalue的
其他相关语句
1 SELECT * 2 FROM sys.partitions 3 WHERE [hobt_id] = 72057594039107584 4 5 SELECT * 6 FROM sys.allocation_units 7 WHERE [allocation_unit_id] = 72057594039107584 8 9 SELECT a.[name] AS '表名' , 10 a.[type_desc] AS '类型描述' 11 FROM [sys].[objects] AS a 12 INNER JOIN sys.[partitions] AS b ON a.[object_id] = b.[object_id] 13 WHERE b.[hobt_id] = 72057594039107584
总结
以前一直以为聚集索引查找和非聚集索引查找靠的就是KeyHashValue,但是通过这次实验,发现不是,
实际上只通过KeyHashValue是无法定位到具体的数据行的,虽然在聚集索引表里每一行记录都有一个KeyHashValue
也是因为每一行记录都有一个keyhashvalue导致自己的思路想错了,所以从写了这篇文章才知道KeyHashValue是什么东东??
“keyhashvalue是用来锁定资源的”
再次感谢高文佳和德国的兄弟傅文伟o(∩_∩)o
如有不对的地方,欢迎大家拍砖o(∩_∩)o
--------------------------------------------------------------------------------------------------------
2013-12-15补充:
在下面两篇文章里面
SQLSERVER聚集索引与非聚集索引的再次研究(上)
SQLSERVER聚集索引与非聚集索引的再次研究(下)
在聚集索引
如果是主键,那么聚集索引页面里是没有uniquifier列的,并且数据页面也是没有uniquifier列
如果是不唯一的聚集索引,是有uniquifier列的,并且数据页面也有uniquifier列
主键
不唯一的聚集索引
这个uniquifier列有什么用?
在SQLSERVER聚集索引与非聚集索引的再次研究(上)里并没有讲到,我之前一直以为在聚集索引查找的时候会用到
实际上,这个uniquifier列是为了散列出一个hash值,尽量保证这个hash值在表中是唯一的,与其他数据行散列出来的hash值不一样
我之前在文章中讲到“需要在每行记录中增加一列UNIQUIFIER ,但是这一列在select * 表中数据的时候是select不出来的”
现在大家明白为什麽select不出UNIQUIFIER列的原因了吧o(∩_∩)o
聚集索引的散列规则:
如果是唯一索引
键值(key)列+ROWID=KeyHashValue
如果是不唯一索引
键值(key)列+UNIQUIFIER列+ROWID=KeyHashValue
之前我在做实验的时候看到过在聚集索引页面的KeyHashValue列中,全部索引行的KeyHashValue都是一样的
但是我还没有见过数据页面中的KeyHashValue值是一样的情况,因为当时我还不知道有undocumented virtual column %%lockres%%
如果大家发现数据页面中有KeyHashValue值是一样的情况,可以在评论中发上来,大家讨论讨论~
而我还没有见到过非聚集索引页面的KeyHashValue值是一样的,可能是他们做散列的时候散列的输入值不一样
在非聚集索引
大家用下面的脚本创建一个不唯一的非聚集索引
1 --非聚集索引 2 USE master 3 GO 4 CREATE DATABASE [pratice] 5 GO 6 7 USE [pratice] 8 GO 9 10 CREATE TABLE Department8( 11 DepartmentID INT NOT NULL 12 ) 13 14 15 CREATE NONCLUSTERED INDEX NCL_Name_GroupName ON [dbo].[Department8](DepartmentID) 16 17 INSERT INTO [dbo].[Department8] 18 SELECT 1 UNION ALL 19 SELECT 2 UNION ALL 20 SELECT 3 UNION ALL 21 SELECT 4 UNION ALL 22 SELECT 5 23 24 SELECT * FROM [dbo].[Department8] 25 26 CREATE TABLE DBCCResult ( 27 PageFID NVARCHAR(200), 28 PagePID NVARCHAR(200), 29 IAMFID NVARCHAR(200), 30 IAMPID NVARCHAR(200), 31 ObjectID NVARCHAR(200), 32 IndexID NVARCHAR(200), 33 PartitionNumber NVARCHAR(200), 34 PartitionID NVARCHAR(200), 35 iam_chain_type NVARCHAR(200), 36 PageType NVARCHAR(200), 37 IndexLevel NVARCHAR(200), 38 NextPageFID NVARCHAR(200), 39 NextPagePID NVARCHAR(200), 40 PrevPageFID NVARCHAR(200), 41 PrevPagePID NVARCHAR(200) 42 ) 43 44 --TRUNCATE TABLE [dbo].[DBCCResult] 45 INSERT INTO DBCCResult EXEC ('DBCC IND(pratice,Department8,-1) ') 46 47 SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC 48 49 DBCC TRACEON(3604,-1) 50 GO 51 DBCC PAGE([pratice],1,142,3) 52 GO
可以看到,非聚集索引跟聚集索引不一样,就算不唯一也不会有UNIQUIFIER列
为什麽?非聚集索引怎麽尽量保证KeyHashValue是唯一的??
听风吹雨大侠给出了提示
HEAP RID(key)这个是指针,这个指针肯定是每一行都不同的,那么DepartmentID(key)+HEAP RID(key)一起散列出来的值
根本不会有重复
非聚集索引的散列规则:
无论唯一/不唯一
键值(key)列+HEAP RID(key)=KeyHashValue
例如上面就是:DepartmentID(key)+HEAP RID(key)=KeyHashValue
感谢听风吹雨大侠o(∩_∩)o
KEYHASHVALUE的意思:
索引键(KEY)+HASHVALUE(散列出来的值)=KEYHASHVALUE
KEY是靠生成的这个KeyHashValue来进行锁定索引中的行
KEY 用于锁定索引上的某一行
HASHVALUE:散列出来的值
当然具体算法目前我还没有找到网上相关文章有提及,或者SQLSERVER INTERNAL这些巨著会有提及,
大家有什么问题可以在评论中发上来,我会热心听取的o(∩_∩)o