位置: 编程技术 - 正文

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

  • 小规模纳税人进项可以抵扣吗
  • 小规模纳税人加油发票可以抵扣吗
  • 装卸费发票怎么备注
  • 押金和租金
  • 作废的增值税普通发票还可以重新开吗?
  • 衍生金融负债是金融负债吗
  • 公司银行未开户税务也没开需要做工商年报吗
  • 多项固定资产能否合并入账
  • 不能确认收入的应收账款怎么做账
  • 新办企业汇算清缴流程
  • 总资产现金回收率是什么与什么平均余额的比
  • 印花税资产划转
  • 固定资产转到别人账户
  • 商业保险可以税前扣除多少
  • 税收名词汇编
  • 机票保险可以报销入账吗
  • 票据转让后本公司还有责任吗
  • 企业捐赠现金支出应在哪个项目反应
  • 预提固定资产折旧费
  • 没有发票的固定资产可以折旧吗
  • 社保扣款是根据每个月实发工资么
  • 劳务报酬的个税计算方法
  • win10怎么防火墙白名单
  • 联想旧电脑怎么连接wifi
  • 支付项目工程款可以借流贷吗
  • 违建罚款了还算违建吗
  • 如何更换电脑开机动画
  • 税费缴纳比例
  • 域名怎么交费
  • 罚款是否需要开发票
  • 商贸企业小规模转一般纳税人条件
  • 野生动物保护区有哪些
  • 其他收益年末需要结转吗
  • 企业短期借款的债权人均为银行
  • 龙舌兰 (© Moab Republic/Shutterstock)
  • 解决出现问题的人
  • 债券到期收回本金和利息的会计分录
  • php计算数组中值怎么算
  • php进程数设置
  • laravel框架最新版本
  • html基础网页
  • 从农民手中收购烟叶的消费税
  • 小微企业普惠性税收减免政策2022
  • 期初认证相符但未申报抵扣的进项如何消除
  • 商业保险可以从一家转到另一家吗
  • 计提工会经费的工资总额包括哪些
  • 税率与征收率是怎么回事
  • 金蝶利润表出现科目
  • 销售费用怎么用
  • 购买办公用品属于什么凭证类型
  • 主营业务成本包括工资吗
  • 支付劳务费后缴多少税
  • 开红字发票做账时记账凭证上如何写摘要?
  • 往来核算会计实训总结
  • 退货与销售折让的区别
  • 计提折旧有哪些会计科目
  • 支付宝如何打印付款凭证
  • 子公司的取得方式
  • 公司经营范围怎么填
  • 产品成本核算方法受那些因素影响
  • Linux下MySQL5.7.18二进制包安装教程(无默认配置文件my_default.cnf)
  • windows server 2003 sp2密钥
  • 如何win8.1升级win10正式版
  • win10系统怎么删
  • Windows Server 2008下高效域管理体验
  • iphone中的照片如何导入mac
  • linux服务器dns配置
  • ubuntu下安装deb文件
  • win10如何动态桌面
  • 下载随手调
  • 给自己的网站制作软件
  • unity摄像机怎么调出来
  • vue scoped属性作用?实现原理
  • python闭包的条件
  • c#中init
  • 安卓拍照闪退
  • python reducebykey
  • python3 tkinter
  • 税务软件服务商
  • etc可以抵扣吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设