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???
由於很苟很苟沒有寫C#代碼,不過我覺得從C#的多線程同步來理解會更加好
例如:
lock 語句 lock 確保當一個線程位於代碼的臨界區時,另一個線程不進入臨界區。如果其他線程試圖進入鎖定的代
碼,則它將一直等待(即被阻止),直到該對象被釋放,大家可以把同步對象理解為KeyHashValue
大家還是看給出的文章鏈接吧,因為本人很苟很苟沒有寫C#代碼了,細節的東西看文章比較好
網上有很多相關的文章:
例如
建立索引的時候為什麽有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版本沒有顯示出來的東西都給你顯示出來了,
這樣有時候就不用做那么多系統表的表連接,如果是以前版本的SQLSERVER要查看某一個信息的時候又要做
這個系統表的表連接又要做那個表的表連接才能得出這個自己想看的東西,非常繁瑣
例如如下改進:
聚集索引頁面的顯示,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