• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQLSERVER中KeyHashValue的作用(上)

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

SQLSERVER中KeyHashValue的作用(上) SQLSERVER中KeyHashValue的作用(下) 原文的标题是:SQLSERVER在索引下如何找到哈希值的随想 现在知道KeyHashValue的作用了,所以就改了标题~ 测试环境:SQLSERVER2005 开发者版 真的不好意思,我做实验的时候到最后还

SQLSERVER中KeyHashValue的作用(上)

SQLSERVER中KeyHashValue的作用(下)

原文的标题是:SQLSERVER在索引下如何找到哈希值的随想

现在知道KeyHashValue的作用了,所以就改了标题~

测试环境:SQLSERVER2005 开发者版

真的不好意思,我做实验的时候到最后还是没有找到这个问题的答案

问题是这样的:

当通过聚集索引查找和非聚集索引查找的时候,通过哈希码来匹配,然后找到相应记录的

既然通过哈希码来匹配,那么就需要一个hash bucket把所有索引页面的所有key/value全部加载到hash bucket

既然要全部加载到hash bucket就需要读取所有的索引页

我的测试脚本,,我使用SET STATISTICS IO ON来测试是否有读取索引页的情况,但是到最后还是找不到规律

master SCANDB SCANDBclusteredtable(c1 INT IDENTITY(1,1), c2 VARCHAR (900))nonclusteredtable(c1 INT IDENTITY(1,1), c2 VARCHAR (900))cix_clusteredtable )ix_nonclusteredtable );;)clusteredtable (, 880));;)nonclusteredtable (, 880))clusteredtable nonclusteredtable DBCCResult ( 59 PageFID NVARCHAR(200), 60 PagePID NVARCHAR(200), 61 IAMFID NVARCHAR(200), 62 IAMPID NVARCHAR(200),本文来源gaodaimacom搞#^代%!码网@ 63 ObjectID NVARCHAR(200), 64 IndexID NVARCHAR(200), 65 PartitionNumber NVARCHAR(200), 66 PartitionID NVARCHAR(200), 67 iam_chain_type NVARCHAR(200), 68 PageType NVARCHAR(200), 69 IndexLevel NVARCHAR(200), 70 NextPageFID NVARCHAR(200), 71 NextPagePID NVARCHAR(200), 72 PrevPageFID NVARCHAR(200), 73 PrevPagePID NVARCHAR(200) 74 ).DBCCResult ).TRACEON(3604,1)PAGE(SCANDB,1,89,3) DROPCLEANBUFFERS)IO clusteredtable IO (1 行受影响)。扫描计数 1,逻辑读取 4 次,物理读取 2 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 DROPCLEANBUFFERS)IO nonclusteredtable IO (1 行受影响)。扫描计数 1,逻辑读取 5 次,物理读取 1 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SQLSERVER中KeyHashValue的作用(上)

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址