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???
由于很苟很苟没有写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%%:
SELECT %%lockres%% AS '数据页的keyhashvalue' FROM 表名
页面126是数据页面
DBCC TRACEON(3604,-1)
GO
DBCC PAGE(testhashkey,1,126,3)
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
脚本:
USE master
GO
CREATE DATABASE testhashkey
GO USE testhashkey
GO --------------------------------------------
--测试聚集索引
CREATE TABLE testcluster
(
a NVARCHAR(3800) NOT NULL ,
b INT NOT NULL
)
GO --这里一定要是唯一的
CREATE UNIQUE CLUSTERED INDEX ucl ON testcluster(b)
GO INSERT testcluster
SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1 UNION ALL
SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2
查看表情况的脚本
CREATE TABLE DBCCResult (
PageFID NVARCHAR(200),
PagePID NVARCHAR(200),
IAMFID NVARCHAR(200),
IAMPID NVARCHAR(200),
ObjectID NVARCHAR(200),
IndexID NVARCHAR(200),
PartitionNumber NVARCHAR(200),
PartitionID NVARCHAR(200),
iam_chain_type NVARCHAR(200),
PageType NVARCHAR(200),
IndexLevel NVARCHAR(200),
NextPageFID NVARCHAR(200),
NextPagePID NVARCHAR(200),
PrevPageFID NVARCHAR(200),
PrevPagePID NVARCHAR(200)
) TRUNCATE TABLE [dbo].[DBCCResult] INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testcluster,-1) ') SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC
聚集索引页面
其实我这里暂时还不清楚聚集索引页面的KeyHashValue有什么作用,为什麽这样说??请往下看
我们看一下表中的每行记录的所产生的keyhashvalue
select %%lockres%% AS '数据页的keyhashvalue' from testcluster
大家可以看到,无论是索引行还是数据行都有KeyHashValue
我们使用下面语句进行测试,查看SQLSERVER锁定的资源
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
SELECT b FROM [dbo].[testcluster] WHERE [b]=1
--COMMIT TRAN SELECT resource_type ,
resource_database_id ,
resource_description ,
resource_associated_entity_id ,
request_mode ,
request_type ,
request_status
FROM sys.dm_tran_locks
WHERE [resource_database_id]=DB_ID('testhashkey')
ORDER BY [resource_type]
为什麽我刚才说:不清楚聚集索引页面的KeyHashValue有什么作用???
大家可以用下面的脚本来测试一下,无论我select还是update,DepartmentID BETWEEN 0 AND 122之间
使用sys.dm_tran_locks视图来查询,发现resource_description字段都没有显示聚集索引页面的keyhashvalue,只显示数据页面
的keyhashvalue,说明我在select和update的时候没有用到聚集索引页面的keyhashvalue,这里我不知道在什么情况下会用到
聚集索引页面的KeyHashValue
脚本如下:
USE master
GO
CREATE DATABASE practice
GO USE practice
GO --只有聚集索引
CREATE TABLE Department(
DepartmentID int IDENTITY(1,1) NOT NULL PRIMARY KEY,
Name NVARCHAR(200) NOT NULL,
GroupName NVARCHAR(200) NOT NULL,
Company NVARCHAR(300),
ModifiedDate datetime NOT NULL DEFAULT (getdate())
) INSERT INTO Department(name,[Company],groupname) VALUES('销售部','中国你好有限公司XX分公司','销售组')
GO 100000 CREATE TABLE DBCCResult (
PageFID NVARCHAR(200),
PagePID NVARCHAR(200),
IAMFID NVARCHAR(200),
IAMPID NVARCHAR(200),
ObjectID NVARCHAR(200),
IndexID NVARCHAR(200),
PartitionNumber NVARCHAR(200),
PartitionID NVARCHAR(200),
iam_chain_type NVARCHAR(200),
PageType NVARCHAR(200),
IndexLevel NVARCHAR(200),
NextPageFID NVARCHAR(200),
NextPagePID NVARCHAR(200),
PrevPageFID NVARCHAR(200),
PrevPagePID NVARCHAR(200)
) TRUNCATE TABLE [dbo].[DBCCResult] INSERT INTO DBCCResult EXEC ('DBCC IND(practice,Department,-1) ') SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC DBCC TRACEON(3604,-1)
GO
DBCC PAGE(practice,1,114,3)
GO select %%lockres%% AS '数据页的keyhashvalue' from Department SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
SELECT DepartmentID FROM Department WHERE DepartmentID BETWEEN 0 AND 122
--COMMIT TRAN SELECT resource_type ,
resource_database_id ,
resource_description ,
resource_associated_entity_id ,
request_mode ,
request_type ,
request_status
FROM sys.dm_tran_locks
WHERE [resource_database_id]=DB_ID('practice')
AND [resource_description] LIKE '%b03b%'
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的
创建非聚集索引,这里我也是指定唯一的
脚本:
--测试非聚集索引
USE [testhashkey]
GO
CREATE TABLE testnoncluster
(
a NVARCHAR(3800) NOT NULL ,
b INT NOT NULL
)
GO CREATE UNIQUE NONCLUSTERED INDEX ucil ON testnoncluster(b)
GO INSERT testnoncluster
SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1 UNION ALL
SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2 SELECT * FROM [dbo].[testnoncluster]
查看表情况的脚本
TRUNCATE TABLE [dbo].[DBCCResult] INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testnoncluster,-1) ') SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC DBCC TRACEON(3604,-1)
GO
DBCC PAGE(testhashkey,1,77,3)
GO
非聚集索引页面
我们看一下表中的每行记录的所产生的keyhashvalue
select %%lockres%% AS '数据页的keyhashvalue' from testnoncluster
大家可以看到,这里只显示了行记录的FID:PID:RID,并没有显示keyhashvalue
我们使用下面语句进行测试,查看SQLSERVER锁定的资源
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
SELECT b FROM [dbo].[testnoncluster] WHERE [b]=1
--COMMIT TRAN SELECT resource_type ,
resource_database_id ,
resource_description ,
resource_associated_entity_id ,
request_mode ,
request_type ,
request_status
FROM sys.dm_tran_locks
WHERE [resource_database_id]=DB_ID('testhashkey')
ORDER BY [resource_type]
我们使用下面脚本创建一个非聚集索引表testnoncluster2
--测试堆表和非聚集索引表的数据页也有keyhashvalue
USE [testhashkey]
GO CREATE TABLE testnoncluster2
(
a NVARCHAR(3800) NOT NULL ,
b INT NOT NULL,
c INT NOT NULL
)
GO CREATE UNIQUE NONCLUSTERED INDEX ucil ON testnoncluster2(b)
GO INSERT testnoncluster2
SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1,1 UNION ALL
SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2,2 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
GO
BEGIN TRANSACTION
DELETE FROM [dbo].[testnoncluster2] WHERE [c]=1
--ROLLBACK TRAN SELECT resource_type ,
resource_database_id ,
resource_description ,
resource_associated_entity_id ,
request_mode ,
request_type ,
request_status
FROM sys.dm_tran_locks
WHERE [resource_database_id]=DB_ID('testhashkey')
ORDER BY [resource_type] select %%lockres%% AS '数据页的keyhashvalue' from testnoncluster2
这次删除非聚集索引表的一行
为了保证我的结论的正确性,我在SQLSERVER2012里也用上面的脚本测试了一下,创建了表testnoncluster2
脚本:
--测试堆表和非聚集索引表的数据页也有keyhashvalue
USE [testhashkey]
GO CREATE TABLE testnoncluster2
(
a NVARCHAR(3800) NOT NULL ,
b INT NOT NULL,
c INT NOT NULL
)
GO CREATE UNIQUE NONCLUSTERED INDEX ucil ON testnoncluster2(b)
GO INSERT testnoncluster2
SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1,1 UNION ALL
SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2,2 TRUNCATE TABLE [dbo].[DBCCResult] INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testnoncluster2,-1) ') SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC DBCC TRACEON(3604,-1)
GO
DBCC PAGE(testhashkey,1,165,3)
GO
数据页面165
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 PAGE: (1:165) BUFFER: BUF @0x049D10A8 bpage = 0x14784000 bhash = 0x00000000 bpageno = (1:165)
bdbid = 7 breferences = 0 bcputicks = 0
bsampleCount = 0 bUse1 = 23721 bstat = 0xb
blog = 0xdb215acc bnext = 0x00000000 PAGE HEADER: Page @0x14784000 m_pageId = (1:165) m_headerVersion = 1 m_type = 1
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x8000
m_objId (AllocUnitId.idObj) = 90 m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72057594043826176
Metadata: PartitionId = 72057594039238656 Metadata: IndexId = 0
Metadata: ObjectId = 629577281 m_prevPage = (0:0) m_nextPage = (0:0)
pminlen = 12 m_slotCnt = 1 m_freeCnt = 1071
m_freeData = 7119 m_reservedCnt = 0 m_lsn = (35:211:62)
m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0
m_tornBits = 0 DB Frag ID = 1 Allocation Status GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED
PFS (1:1) = 0x63 MIXED_EXT ALLOCATED 95_PCT_FULL DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED Slot 0 Offset 0x60 Length 7023 Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS
Record Size = 7023
Memory Dump @0x0FB7C060 00000000: 30000c00 01000000 01000000 03000001 006f1b31 0................o.1
00000014: 00310061 00610061 00610061 00610061 00610061 .1.a.a.a.a.a.a.a.a.a
00000028: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000003C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000050: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000064: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000078: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000008C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000104: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000118: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000012C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000140: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000154: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000168: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000017C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000190: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000208: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000021C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000230: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000244: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000258: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000026C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000280: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000294: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000030C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000320: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000334: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000348: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000035C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000370: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000384: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000398: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000410: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000424: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000438: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000044C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000460: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000474: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000488: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000049C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000500: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000514: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000528: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000053C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000550: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000564: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000578: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000058C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000604: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000618: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000062C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000640: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000654: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000668: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000067C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000690: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000708: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000071C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000730: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000744: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000758: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000076C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000780: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000794: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000080C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000820: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000834: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000848: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000085C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000870: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000884: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000898: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000910: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000924: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000938: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000094C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000960: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000974: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000988: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000099C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000ADC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BCC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C6C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C80: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C94: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CA8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CBC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CD0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CE4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CF8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D0C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D20: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D34: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D48: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D5C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D70: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D84: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D98: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DAC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DC0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DD4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DE8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DFC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E10: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E24: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E38: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E4C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E60: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E74: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E88: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E9C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000EB0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000EC4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000ED8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000EEC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FDC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001004: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001018: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000102C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001040: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001054: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001068: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000107C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001090: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001108: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000111C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001130: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001144: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001158: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000116C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001180: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001194: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000120C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001220: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001234: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001248: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000125C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001270: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001284: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001298: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001310: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001324: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001338: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000134C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001360: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001374: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001388: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000139C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001400: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001414: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001428: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000143C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001450: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001464: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001478: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000148C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001504: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001518: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000152C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001540: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001554: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001568: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000157C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001590: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001608: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000161C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001630: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001644: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001658: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000166C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001680: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001694: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000170C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001720: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001734: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001748: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000175C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001770: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001784: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001798: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001810: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001824: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001838: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000184C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001860: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001874: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001888: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000189C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001900: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001914: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001928: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000193C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001950: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001964: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001978: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000198C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001ACC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B6C: 006100 .a. Slot 0 Column 1 Offset 0x13 Length 7004 Length (physical) 7004 a = 11aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaa Slot 0 Column 2 Offset 0x4 Length 4 Length (physical) 4 b = 1 Slot 0 Column 3 Offset 0x8 Length 4 Length (physical) 4 c = 1 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
发现数据页面165里面是没有keyhashvalue的,证明我在开头说的话没有错
非聚集索引表的非聚集索引页有keyhashvalue,但是数据页是没有keyhashvalue的
堆表
脚本:
--测试堆表
USE [testhashkey]
GO CREATE TABLE testheap
(
a NVARCHAR(3800) NOT NULL ,
b INT NOT NULL,
c INT NOT NULL
)
GO INSERT testheap
SELECT CAST(11 AS VARCHAR(10))+replicate('a', 3500),1,1 UNION ALL
SELECT CAST(22 AS VARCHAR(10))+replicate('a', 3500),2,2 TRUNCATE TABLE [dbo].[DBCCResult] INSERT INTO DBCCResult EXEC ('DBCC IND(testhashkey,testheap,-1) ') SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC DBCC TRACEON(3604,-1)
GO
DBCC PAGE(testhashkey,1,175,3)
GO
数据页面175
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 PAGE: (1:175) BUFFER: BUF @0x04A62018 bpage = 0x196A6000 bhash = 0x00000000 bpageno = (1:175)
bdbid = 7 breferences = 0 bcputicks = 0
bsampleCount = 0 bUse1 = 23982 bstat = 0xb
blog = 0x15acc bnext = 0x00000000 PAGE HEADER: Page @0x196A6000 m_pageId = (1:175) m_headerVersion = 1 m_type = 1
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x8000
m_objId (AllocUnitId.idObj) = 92 m_indexId (AllocUnitId.idInd) = 256
Metadata: AllocUnitId = 72057594043957248
Metadata: PartitionId = 72057594039369728 Metadata: IndexId = 0
Metadata: ObjectId = 645577338 m_prevPage = (0:0) m_nextPage = (0:0)
pminlen = 12 m_slotCnt = 1 m_freeCnt = 1071
m_freeData = 7119 m_reservedCnt = 0 m_lsn = (35:279:29)
m_xactReserved = 0 m_xdesId = (0:0) m_ghostRecCnt = 0
m_tornBits = 0 DB Frag ID = 1 Allocation Status GAM (1:2) = ALLOCATED SGAM (1:3) = ALLOCATED
PFS (1:1) = 0x63 MIXED_EXT ALLOCATED 95_PCT_FULL DIFF (1:6) = CHANGED
ML (1:7) = NOT MIN_LOGGED Slot 0 Offset 0x60 Length 7023 Record Type = PRIMARY_RECORD Record Attributes = NULL_BITMAP VARIABLE_COLUMNS
Record Size = 7023
Memory Dump @0x102BC060 00000000: 30000c00 01000000 01000000 03000001 006f1b31 0................o.1
00000014: 00310061 00610061 00610061 00610061 00610061 .1.a.a.a.a.a.a.a.a.a
00000028: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000003C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000050: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000064: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000078: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000008C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000000F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000104: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000118: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000012C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000140: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000154: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000168: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000017C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000190: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000001F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000208: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000021C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000230: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000244: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000258: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000026C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000280: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000294: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000002F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000030C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000320: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000334: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000348: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000035C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000370: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000384: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000398: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000003FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000410: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000424: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000438: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000044C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000460: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000474: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000488: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000049C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000004EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000500: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000514: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000528: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000053C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000550: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000564: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000578: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000058C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000005F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000604: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000618: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000062C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000640: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000654: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000668: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000067C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000690: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000006F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000708: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000071C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000730: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000744: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000758: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000076C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000780: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000794: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000007F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000080C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000820: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000834: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000848: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000085C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000870: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000884: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000898: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000008FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000910: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000924: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000938: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000094C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000960: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000974: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000988: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000099C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000009EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000A8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000ADC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000AF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000B90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BCC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000BF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C6C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C80: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000C94: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CA8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CBC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CD0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CE4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000CF8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D0C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D20: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D34: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D48: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D5C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D70: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D84: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000D98: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DAC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DC0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DD4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DE8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000DFC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E10: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E24: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E38: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E4C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E60: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E74: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E88: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000E9C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000EB0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000EC4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000ED8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000EEC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F00: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F14: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F28: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F3C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F50: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F64: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F78: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000F8C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FA0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FB4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FC8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FDC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00000FF0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001004: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001018: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000102C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001040: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001054: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001068: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000107C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001090: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000010F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001108: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000111C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001130: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001144: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001158: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000116C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001180: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001194: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000011F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000120C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001220: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001234: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001248: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000125C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001270: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001284: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001298: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000012FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001310: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001324: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001338: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000134C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001360: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001374: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001388: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000139C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000013EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001400: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001414: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001428: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000143C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001450: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001464: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001478: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000148C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000014F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001504: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001518: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000152C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001540: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001554: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001568: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000157C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001590: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015A4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015B8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015CC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015E0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000015F4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001608: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000161C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001630: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001644: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001658: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000166C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001680: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001694: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016A8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016BC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016D0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016E4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000016F8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000170C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001720: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001734: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001748: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000175C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001770: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001784: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001798: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017AC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017C0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017D4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017E8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000017FC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001810: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001824: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001838: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000184C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001860: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001874: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001888: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000189C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018B0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018C4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018D8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000018EC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001900: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001914: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001928: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000193C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001950: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001964: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001978: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
0000198C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019A0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019B4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019C8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019DC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
000019F0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A04: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A18: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A2C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A40: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A54: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A68: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A7C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001A90: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AA4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AB8: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001ACC: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AE0: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001AF4: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B08: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B1C: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B30: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B44: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B58: 00610061 00610061 00610061 00610061 00610061 .a.a.a.a.a.a.a.a.a.a
00001B6C: 006100 .a. Slot 0 Column 1 Offset 0x13 Length 7004 Length (physical) 7004 a = 11aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaa Slot 0 Column 2 Offset 0x4 Length 4 Length (physical) 4 b = 1 Slot 0 Column 3 Offset 0x8 Length 4 Length (physical) 4 c = 1 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
堆表的数据页面也是没有keyhashvalue的
其他相关语句
SELECT *
FROM sys.partitions
WHERE [hobt_id] = 72057594039107584 SELECT *
FROM sys.allocation_units
WHERE [allocation_unit_id] = 72057594039107584 SELECT a.[name] AS '表名' ,
a.[type_desc] AS '类型描述'
FROM [sys].[objects] AS a
INNER JOIN sys.[partitions] AS b ON a.[object_id] = b.[object_id]
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值是一样的,可能是他们做散列的时候散列的输入值不一样
在非聚集索引
大家用下面的脚本创建一个不唯一的非聚集索引
--非聚集索引
USE master
GO
CREATE DATABASE [pratice]
GO USE [pratice]
GO CREATE TABLE Department8(
DepartmentID INT NOT NULL
) CREATE NONCLUSTERED INDEX NCL_Name_GroupName ON [dbo].[Department8](DepartmentID) INSERT INTO [dbo].[Department8]
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 5 SELECT * FROM [dbo].[Department8] CREATE TABLE DBCCResult (
PageFID NVARCHAR(200),
PagePID NVARCHAR(200),
IAMFID NVARCHAR(200),
IAMPID NVARCHAR(200),
ObjectID NVARCHAR(200),
IndexID NVARCHAR(200),
PartitionNumber NVARCHAR(200),
PartitionID NVARCHAR(200),
iam_chain_type NVARCHAR(200),
PageType NVARCHAR(200),
IndexLevel NVARCHAR(200),
NextPageFID NVARCHAR(200),
NextPagePID NVARCHAR(200),
PrevPageFID NVARCHAR(200),
PrevPagePID NVARCHAR(200)
) --TRUNCATE TABLE [dbo].[DBCCResult]
INSERT INTO DBCCResult EXEC ('DBCC IND(pratice,Department8,-1) ') SELECT * FROM [dbo].[DBCCResult] ORDER BY [PageType] DESC DBCC TRACEON(3604,-1)
GO
DBCC PAGE([pratice],1,142,3)
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
SQLSERVER中KeyHashValue的作用(下)的更多相关文章
- SQLSERVER中KeyHashValue的作用(上)
SQLSERVER中KeyHashValue的作用(上) SQLSERVER中KeyHashValue的作用(下) 原文的标题是:SQLSERVER在索引下如何找到哈希值的随想 现在知道KeyHash ...
- SQLSERVER 中GO的作用详解
具体不废话了,请看下文详解. ? 1 2 3 4 5 6 7 8 9 10 use db_CSharp go select *, 备注=case when Grade>=90 then ' ...
- SQLSERVER 中GO的作用
go 向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.go是把t-sql语句分批次执行.(一步成功了才会执行下一步,即一步一个go) BEGIN 和 END 语句 ...
- EF CodeFirst生成数据库到Sqlserver中
EF CodeFirst简单实例这篇文章介绍了如何用EF去快速生成数据库.但是这个并没有生成到sqlserver中,总觉得不爽.下面就来讲一下,如何将数据库生成到sqlserver中. 按照EF Co ...
- SQLSERVER中NULL位图的作用
SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
c#中@标志的作用 参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...
- 我是如何在SQLServer中处理每天四亿三千万记录的
首先声明,我只是个程序员,不是专业的DBA,以下这篇文章是从一个问题的解决过程去写的,而不是一开始就给大家一个正确的结果,如果文中有不对的地方,请各位数据库大牛给予指正,以便我能够更好的处理此次业务. ...
- Sqlserver中一直在用又经常被忽略的知识点一
已经有快2个月没有更新博客了,实在是因为最近发生了太多的事情,辞了工作,在湘雅医院待了一个多月,然后又新换了工作...... 在平时的工作中,Sqlserver中许多知识点是经常用到的,但是有时候我们 ...
- SQLSERVER中的假脱机spool
SQLSERVER中的假脱机spool 我发现网上对于假脱机的解释都非常零散,究竟假脱机是什么? 这几天在家里研究了一下,收集了很多网上的资料 假脱机是中文的翻译,而英文的名字叫做 spool 在徐老 ...
随机推荐
- Postman—命令执行脚本及生成报告
前言 前面的应用中,都是在postman图形界面工具里面进行测试,但是有时候我们需要把测试脚本集成到CI平台,或者在非图形界面的系统环境下进行测试,那么我们该如果处理呢 通过newman来执行post ...
- ubuntu16.04安装cuda,无法定位软件包问题
为了学习深度学习,这几天在安装深度学习框架,cuda安装时却出现无法定位软件包的问题.cuda官网下载时提供了deb和run格式,今天只讲deb格式的安装包安装过程的问题. 按照官方教程,下载好cud ...
- 接口文档管理神器RAP2安装和部署
目录 一 RAP2 二 RAP2 安装需要的环境 2. 1 Node.js 安装: 2. 2 Mysql 5.7+ 安装 2 .3 Redis 安装见文章 2. 4 后端 rap2-delos 安装 ...
- redis-springboot-redistemplate更改序列化方式
redisTemplate 默认的序列化方式为 jdkSerializeable, StringRedisTemplate的默认序列化方式为StringRedisSerializer 可以通过手动配置 ...
- 8-lvs-负载均衡
注意: linux集群的时间需要一致 并发量在千万以上, 一般才会使用此种方式, 基于第四层进行ip欺骗, 使得nginx只接受上行流量, 下行流量通过具体执行的服务器直接返回 由章文嵩博士(淘宝) ...
- 玩转mongodb(一):初识mongodb
简介: MongoDB是一个开源的文档数据库,支持高性能.高可用性.自动缩放. 在MongoDB中,一条记录就是一个文档,是由字段和值对构成一个数据结构,类似于JSON对象.字段的值可以包括其他文档. ...
- [笔记] Python字符串
1.字符串是以单引号'或双引号"括起来的任意文本 比如'Mifen',"Amd794",'-956-$*'等等.注意:不能单双引号组合,涉及字符串中存在单双引号出现,应用 ...
- c#基础学习(0628)之使用进程打开指定的文件、模拟磁盘打开文件
使用进程打开指定的文件 模拟磁盘打开文件 class Program { static void Main(string[] args) { while(true) { Console.WriteLi ...
- Abp中SwaggerUI的多个接口文档配置说明
对外提供的接口在实际生成过程中,可能是需要一个接口版本的,比如说v1,manage.效果如下: 在swagger中怎么实现呢? 1. 添加SwaggerVersionHelper.cs pub ...
- Vertica备份恢复
Vertica备份和恢复数据库 Vertica提供了一个功能全面的使用程序--vbr, 他是一个Python脚本.使用vbr脚本可以备份和还原完整备份以及为特定架构或表创建备份.vbr实用程序会在首次 ...