位置: 编程技术 - 正文

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

  • 转租价格由谁决定
  • 借款现金分录怎么做
  • 安全生产费计提没用可以冲吗
  • 进项税额抵扣一般多少
  • 融资租赁与按揭贷款区别
  • 当月勾选认证的原材料与当月领用的原材料区别
  • 以股东投资为基础
  • 多付银行承兑退回的会计分录怎么写?
  • 收到免税发票怎么做账务处理
  • 增资扩股如何操作
  • 购置税交了发票能作废吗
  • 个人开增值税普票有没有限额
  • 仓储租赁增值税
  • 金税三期个人所得税扣缴系统手机版
  • 白酒消费税税率多少钱一吨
  • 增值税2017年起征点
  • 待清算直销银行
  • 财税[2001]10号
  • 房产税要来了!租金也要交,最高达到12%
  • 劳务派遣公司怎么赚钱
  • 教育咨询发票怎么开具
  • 哪些津贴免征个税
  • 企业出口产品条件和流程
  • 公司员工补充医疗保险方案
  • 个人所得税应纳税额计算表图片
  • 预借差旅费计入其他应收款吗
  • 网络唤醒的原理
  • 收到投标保证金利息会计分录
  • 退回多缴税款账务处理
  • 苹果11屏幕尺寸长宽
  • 事业单位投资收回账务处理
  • 苹果手机删除的备忘录怎么恢复
  • rasman.exe - rasman是什么进程 有什么作用
  • 无形资产的摊销方法
  • 限额领料单一般一式几联
  • 销售费用属于损益类科目的收入还是费用
  • 残疾人在公司上班公司有什么好处
  • 编制合并报表的母子公司是什么主体
  • 残保金的会计处理
  • 增值税专用发票查询系统官方网站
  • php面向对象是什么意思
  • 网上学电脑的软件
  • 单位有残疾人能享受
  • 进项税大于销项税怎么交税
  • 年金现值和终值的计算
  • sql server提示不允许保存更改
  • access分组计数
  • 跨境收入免增值税需做备案吗
  • 银行手续费已扣发票未开的账务处理
  • 公司给员工买意外险需要员工出钱吗
  • 发票申请退税隔两个月能去办理么
  • 增值税发票开错冲红重开如何做会计分录?
  • 营业外支出罚没支出包括
  • 应收利息的账务处理方法
  • 股东 退股
  • 企业无偿为员工买社保
  • 采购费用属于什么会计分录
  • 期初建账怎么做
  • 影视产业前景
  • 其他债权投资减值准备是什么科目
  • sql语句优化的13种方法
  • linux系统基本指令
  • xp系统怎么添加ip地址
  • linux vim
  • ,linux
  • ps是什么文件
  • 局域网win7 64位旗舰版共享打印机状态错误0x0000000a的详细图文解决方法
  • vs2010配置opengl
  • shell脚本自动化
  • css控制图片大小和宽度
  • html模板 js
  • js实现分页数据库数据
  • 断开网络联结的手机
  • jquery解析XML及获取XML节点名称的实现代码
  • flask pycharm
  • 四川省税务局发票查询
  • 新加坡政治体制的介绍
  • 广西税务12366如何交社保
  • 税务局发票邮寄费用谁承担
  • 河南省城市规划法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设