位置: 编程技术 - 正文

SQL Server2014 哈希索引原理详解(sql hash)

编辑:rootadmin

推荐整理分享SQL Server2014 哈希索引原理详解(sql hash),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql哈希表,sql hash,sql server hash join,sql_hash_value,数据库哈希索引,数据库 哈希,数据库 哈希,sql hash,内容如对您有帮助,希望把文章链接给更多的朋友!

当一个key-value键值对传递给一个哈希函数的时候,经过哈希函数的计算之后,根据结果会把key-value键值对放在合适的hash buckets(哈希存储桶)里

举个栗子

我们假设对取模( % )就是哈希函数。如果key-value键值对的key是 ,传递到哈希函数,那么 会存放在第五个bucket里

因为5 as % = 5。

同样, 会存放在第七个bucket , 会存放在第二个bucket ,依次类推

同样,在hash index里面,哈希索引列会被传递给哈希函数做匹配(类似于java里面的HashMap的Map操作),匹配成功之后,

索引列会被存储在匹配到的hash bucket里面的表里,这个表里会有实际的数据行指针,再根据实际的数据行指针查找对应的数据行。

概括来说,要查找一行数据或者处理一个where子句,SQL Server引擎需要做下面几件事

1、根据where条件里面的参数生成合适的哈希函数

2、索引列进行匹配,匹配到对应hash bucket,找到对应hash bucket意味着也找到了对应的数据行指针(row pointer)

3、读取数据

SQL Server2014 哈希索引原理详解(sql hash)

哈希索引比起B树索引简单,因为它不需要遍历B树,所以访问速度会更快

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_a1dad8f.jpg" alt="查看图片" />

哈希函数和相应语法的例子

在SQL Server 里面,内存优化表创建完之后就不能再加哈希索引了,但是在 SQL Server 里支持表创建完之后添加哈希索引,不过

添加哈希索引是一个离线操作。

哈希索引的Bucket 数量

( BUCKET_COUNT = )定义了哈希索引能够使用的BUCKET数量,这个Bucket 是固定的并且由用户指定Bucket 数量,

而不是执行查询的时候由SQL Server决定生成的Bucket 数量。BUCKET数量总是2的次方的四舍五入( , , etc..)

SQL Server的哈希索引其实跟MySQL的自适应哈希索引原理其实差不多,都是为了摆脱B树的束缚,使查找效率更快

How does a relational database work这篇文章也有描述hash join的原理,大家可以看一下

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_a1dae.png" alt="查看图片" />

Notice: Undefined index: CMSdown in /data/webroot/gcms/lib/Api/Open/Article.php on line img////_a1dae6be1c.png" alt="查看图片" />

非常好用的sql语句(日常整理) 1./*得到trace文件路径和名称*/SELECTd.VALUE||'/'||LOWER(RTRIM(i.INSTANCE,CHR(0)))||'_ora_'||p.spid||'.trc'trace_file_nameFROM(SELECTp.spidFROMv$mystatm,v$sessions,v$processpWHEREm.statistic#=1

安装完成后如何找回SQL Server实例安装时的序列号 当需要再次安装SQLServer时,如果序列号找不到了,可以试着从已经安装的实例里找回序列号,因为安装完SQLServer后,序列号(ProductKey)被保存在注册表里

一步步教你建立SQL数据库的表分区 直接上步骤:1)新建一个数据库2)添加几个文件组3)回到常规选项卡,添加数据库文件看到用红色框框起来的地方没上一步中建立的文件组在这里就用上了

标签: sql hash

本文链接地址:https://www.jiuchutong.com/biancheng/347397.html 转载请保留说明!

上一篇:SQLSERVER SQL性能优化技巧(sql数据库性能)

下一篇:非常好用的sql语句(日常整理)(sql常用语句大全简书)

  • 2021年9月个税申报截止时间
  • 累计折旧影响所得税费用吗
  • 飞机票退票费如何处理账务
  • 当月开票当月收款
  • 2019年计算机软件行业人均年工资
  • 房屋契税是按照发票上的不含税价格交吗
  • 非同一控制下用什么法
  • 房屋租赁需要交增值税吗
  • 进项发票认证后暂不抵扣
  • 补提折旧以前年度损益调整汇算清缴怎么处理
  • 预提返利的会计处理
  • 为什么收到的劳务费税点打星号?
  • 超豪华小汽车消费税起征点
  • 纳税人签字
  • 个税滞纳金如何调增所得税费用
  • 个人储蓄存款利率
  • 当月认证下月抵扣
  • 营业外支出怎么冲减
  • 电子税务局首次申请专票
  • 软件开发并销售怎么做
  • 长期投资损失的确认
  • win101903怎么查看
  • 建筑单位没有资质可以承包项目吗
  • 超率累进税率和超倍累进税率
  • php web3
  • 施伦贝格尔
  • 迷迭香怎么养殖方法
  • 极路由怎么用
  • 房产税去哪交税
  • 安大略省节日
  • taro-ui-vue3
  • vue.js前端
  • 电话费发放标准2020
  • 【综述】分子预训练模型综述
  • 本期收入及免税收入
  • javaweb实现用户登录注册
  • 下列纳税人不得适用核定征收企业所得税的有
  • 计提工会经费怎么做账务处理
  • 资产负债表不平衡能结账吗
  • 开通对公账号怎么办理
  • 工厂道路设计规范
  • 有哪些业务可以和公交公司合作的
  • 企业适用的增值税税率
  • access数据库修改字段类型
  • sql函数判断一个值是否是数字
  • 利润表研发费用和管理费用
  • 小企业营业外收入包括
  • 未发货未收款先开具发票怎么账务处理
  • 企业如何进行利润分配的会计处理
  • 建筑业营改增后,人工费不存在可抵扣
  • 工程款打入个人账户扣税吗
  • 招标付款条件及比例
  • 购买本公司产品未付款需要签名字吗
  • 不同数据库之间的数据一同传递
  • centos6.2安装教程
  • win10系统如何查看显卡配置
  • iis配置asp网站
  • WZCBDLS.EXE - WZCBDLS是什么进程
  • 电脑无法启动windows7
  • 两台xp电脑怎么共享文件
  • mac重装macos
  • 电脑界面显示windows
  • ubuntu设置登录用户
  • window8怎么样
  • 如何隐藏应用软件
  • linux shell 函数参数
  • sedsvc.exe是什么
  • 怎么处理人际关系
  • unity3d官方教程
  • 深入理解linux内核第三版
  • iframe嵌入页面出现跨域问题
  • vue两个花括号
  • shell脚本运行c程序
  • nodejs eventloop
  • jquery拖拽插件
  • 新办企业没有员工要报个人所得税吗
  • 金税全国客服电话
  • 电子税务局在线咨询
  • 工程增值税率从11%调整到9%
  • 合肥哪里可以注销电信卡
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设