位置: 编程技术 - 正文

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常用语句大全简书)

  • 受票方与付款方不一致
  • 税收会计在会计中的应用
  • 营业外收入纳税调整
  • 增值税申报表如何打印
  • 没有独立核算的分公司需要报税
  • 个人偶然所得税率多少
  • 机械租赁税率是10个点还是9个点
  • 发票章坏了能自己刻吗
  • 已核销的坏账又收回会计分录
  • 作家以及作品
  • 各种收入与应纳税额的比例
  • 季度收取租金会计分录怎么写?
  • 单位补缴社保会罚款吗
  • 收入跨期调整是否调增值税
  • 在途物资可以结转成本吗
  • 当期未开票过收入,以后开票怎么做会计分录
  • 销售自产自销的产品要交税吗?
  • 抵扣上月留抵税额的分录
  • 申报作废的多申报的退款怎么处理?
  • 经营现金流动比率公式
  • 小微企业几个人
  • 一般纳税人证明在哪里打印
  • 银行异地汇款抽奖需要扣缴个人所得税吗?
  • 如何申报固定资产投资
  • 职工教育法
  • 客户到款打到子公司账上如何转回
  • 房地产行业规定
  • 人力成本包括哪三个方面
  • 城市地下建设
  • 农村合作社收到财政拨款怎么做分录
  • 经费支出渠道
  • 抵押房产可以买卖吗
  • 固定资产进项税额转出怎么做账务处理
  • 公司收到个人入股股金,然后又投资其他公司怎么做账
  • 以下哪些企业需要填报
  • 股权转让个人所得税优惠政策
  • php 分页
  • 超出经营范围开票怎么处理
  • php多进程处理大数据
  • 改征增值税是什么意思
  • react connect用法
  • 可以享受企业所得税加计扣除的有
  • 不得抵扣的增值税怎么处理
  • PHP isset()与empty()的使用区别详解
  • 如何理解虚拟存储的虚拟
  • python绘制散点图的函数
  • 进项税额年末账务处理
  • 个税汇算清缴时劳务报酬怎么计税
  • mysql触发器在哪
  • mongodb 入门
  • 无偿帮工造成财产损失谁赔偿 法院
  • 管理费用的相关科目
  • 没有发票的费用支出怎么入账
  • 零售行业的销售额由什么决定
  • excel内账报表
  • 工会应付下级经费
  • 公司购买的空调
  • 提取盈余公积金
  • 冲销以前月份的凭证
  • 在建工程转固定资产是什么意思?
  • services.exe修改注册表
  • linux 显示
  • Win7 64位系统没有超级终端软件的解决方法
  • Win10 Mobile/PC RS2快速预览版14926同步推送
  • win7显示网上邻居图标
  • win7系统卡慢怎么修复
  • win7记事本可以保存的格式
  • linux充当虚拟内存的是哪个分区
  • win8打开蓝牙设置
  • 在linux中使用什么可以执行shell脚本
  • vc6.0安装教程win8
  • win10系统锁屏广告怎么取消
  • android:View的setTag和getTag使用
  • 电脑怎么自动清除垃圾
  • node js官网
  • 简述python的垃圾回收机制
  • 在css中
  • js定义数据类型
  • 武汉税务代理大概多少钱
  • 广东电子税务局财务报表在哪里查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设