位置: 编程技术 - 正文

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

  • 注册公司不开账户可以吗
  • 什么是纳税地点?
  • 城市维护建设税是什么意思
  • 企业所得税汇算清缴时间
  • 养老保险滞纳金最高限额规定
  • 税控盘费用抵扣
  • 资产负债表期初和期末的关系
  • 公司股权关系怎么填写
  • 股东将投资款转入个人账户
  • 个税申报截止日期2023年8月
  • 原材料被盗计入什么科目
  • 低值易耗品残料有哪些
  • 财产性收入是非劳动性收入吗
  • 普通发票做账有什么用
  • 股东多交投资款处理
  • 收到小规模企业农产品普票可以抵扣进项税吗?
  • 电子承兑汇票没开通能接受吗
  • 增值税发票没有地址和开户行有效吗
  • 企业所得税费用税率
  • 企业拿到产权证后是否还需要缴纳土地使用税呢?
  • 待抵扣进项税额是什么情况下用的
  • 销售折扣和销售折让的账务处理
  • 业务招待费增值税是进项税吗
  • 外币借款利息汇兑差额计算公式
  • ThinkPHP让../Public在模板不解析(直接输出)的方法 原创
  • msscli.exe - msscli是什么进程 有什么用
  • 微软win11预览版
  • 外贸企业退税需要哪些资料
  • 病假工资是工资吗
  • 存货的核算方法
  • SchSvr.exe - SchSvr是什么进程 有什么作用
  • 增值税已认证抵扣
  • 资产减值损失的借贷方向
  • 一般纳税人暂估入账的会计分录
  • 稳岗补贴钱给谁
  • 先开发票还是先收钱
  • php判断ua
  • 公司给部分员工长期停工怎么办
  • 企业所得税营业收入怎么填
  • 房地产企业的固定资产比率越高越好吗
  • 一张记账凭证写不下时合计怎么写
  • 合租物业费按人头还是按房间分
  • 企业所得税和个人所得税怎么算
  • 接待客户的旅游活动
  • 先开票后发货是什么意思
  • 银行涉外收入申报单
  • 开票金额大于付款金额 多余部分为返点
  • 在建工程转固后计提折旧
  • 产品成本核算有多条原则和要求
  • mysql详细介绍
  • centos安装NVIDIA驱动
  • win10系统崩溃怎么修复开不了机
  • 如何查看windows2008修改密码日志
  • 如何使用chatgpt
  • dns server配置
  • win8桌面右键无法使用
  • ic_launcher.xml
  • imjpmig是什么进程
  • centos7 swap大小设多少
  • 如何关闭win8快速启动
  • 给网页添加javascript
  • javascript的代码写在哪里
  • jquery教程
  • jQuery基于xml格式数据实现模糊查询及分页功能的方法
  • linux中shell命令
  • 深入理解计算机系统
  • python中的省略号怎么打
  • 【mclin】手把手叫你在Eclipse里添加Android开发功能(附:完整离线版Android_SDK和Android_ADT下载)
  • javascript面向对象吗
  • jquery基本知识
  • 山东省国家税务局总局官网
  • 企业科研经费管理制度
  • 已经开具的电子专票怎么重新下载
  • 河北云办税厅2.0登录
  • 汽车公司户转个人户
  • 陕西省国税务局大企业处长邓谷祥简历
  • 成都市税务app
  • 国考报四川的去哪考
  • 附加税申报表怎么做
  • 中国税务局发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设