位置: 编程技术 - 正文

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

  • 税务纳税等级m级是什么等级
  • 城市维护建设税优惠政策
  • 我国会计准则规定,会计核算以人民币为记账本位币
  • 城市生活垃圾处理收费管理办法
  • 有限合伙企业属于什么经济类型
  • 加计抵扣进项税进营业外收入
  • 形式发票怎么写
  • 个人销售自产农产品 个人所得税
  • 银行卡撤销账户
  • 增值税专票未认证丢失怎么办
  • 结构性存款认购时间为募集期的几点
  • 收到跨境分红的会计处理怎么做?
  • 按月预提短期借款利息
  • 无产权车位20年到期后还收费吗
  • 现代服务业如何提升为人民服务
  • 账务不符怎么写
  • 新建厂房购入材料会计分录
  • 出口货物收汇是什么意思
  • 公司车贷款还款怎么操作
  • 12月计提税金
  • 安置残疾人员加计扣除
  • 外购已税化妆品生产的护肤护发品
  • 单位为员工支付医疗费
  • 服务业缴税
  • 银行承兑汇票和银行汇票的区别
  • 帮老板支付的代款怎么做
  • 新会计准则职工薪酬解读
  • 如何开启系统自带杀毒软件
  • 备用金怎么填写记账凭证
  • 行政事业单位怎么考
  • Element-UI--<el-switch>的@change回调函数的参数用法
  • html该怎么学
  • 房地产开发成本明细
  • 企业如何避免纳税问题
  • web网页设计期末作业猫眼电影首页
  • 发放职工薪酬账务怎么做
  • 报销加油票怎么开票
  • 会计分录怎么分借方和贷方
  • 增值税密码锁定怎么办
  • 装修阶段监理注意事项
  • python 如何学
  • 目标检测论文解析怎么写
  • ps位图矢量化
  • 补收入账是什么意思
  • 生产企业出口退税账务处理会计分录
  • 票据带息和不带息
  • 承兑汇票贴现利率是怎么算
  • mysql常用查询语句大全
  • 计提和支付可以录在一张凭证吗
  • 百旺税控盘汇总上传如何检查
  • 核定征收可以不用申报吗
  • 政府会计的会计要素有哪几个?会计要素之间的关系如何?
  • 扣税8%
  • 公司借款私人账户
  • 企业将资金用于购买原材料属于什么过程
  • 固定资产的印花税费计入什么科目里
  • 新准则建筑业会计核算
  • 收到劳务费
  • 收回投标保证金 建立台账
  • mysql语句的注释符号
  • win10 系统内存
  • xp系统怎么修改网络ip地址
  • win10一年更新一次
  • win7未能启动怎么办
  • win7无法远程桌面win10
  • 快速掌握押韵技巧
  • 用批处理删除盘符
  • linux编译链接命令
  • jquery添加删除属性
  • Android Http请求方法汇总
  • 批处理转义字符如何
  • javascript声明变量的语句
  • jquery调用json数据
  • 在shell中获取脚本命令行参数的方法和区别
  • 上海税务发票自动抵扣
  • 广州买房退税政策2020
  • 家政公司的清洁工具
  • 中加税务信息互换执行
  • 财产租赁包括哪些财产
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设