2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

内存优化表的索引

  • 2013-09-25
  • 本文字数:678 字

    阅读完需:约 2 分钟

SQL Server 2014 的内存优化表对索引的处理方式与传统表相比差别很大。首先也是最重要的一点,你必须有至少一个索引,但同时索引数不能超过8 个。

必须的那个索引用于组织内存中的数据。不同于传统的表,内存优化表并不支持将数据存储到一个无序堆中。这个索引包含主键,这也是表所唯一允许的唯一列。另外,主键不能是一个标识列。

事实上,标识列是被完全禁止的。这极有可能是支持锁无关写操作所需要的一个限制。

其他7 个索引几乎都是用于辅助join 和order by 操作的。正如前面所提到的,你不能添加额外的唯一索引,也不能使用索引执行外键约束。

你也不能使用触发器解决这些限制,因为内存优化表并不支持。

最后,也不允许检查约束。这意味着几乎所有关注完整性的数据都必须被推送到存储过程或者应用程序层里面。

但是请等一等,还有更多要说明的内容。你还不能在可空的列上放置索引。你也不能使用筛选索引,每一个索引都必须引用每一行。

内部结构

内存优化表中的行并不会被安排在页中。相反,它们分散在内存中。访问它们的唯一方式便是通过索引,这就是至少要有一个索引的原因。

这些索引并不是传统的B 树。它使用一个哈希索引和一个固定数量的桶(buckets)。在理想的情况下,每一个桶仅会容纳一行,因此在创建索引的时候你应该指定期望这个表存储的行的数量。你需要仔细斟酌,对于内存而言超出预算的行数是一个非常大的浪费。

对此,一个计划的替代方案是范围索引(range indexes)。虽然现在还不能用,但是范围索引的期望是能够更好地处理未知数量的行。

明天我们将会继续这个系列,介绍本机编译的查询。

查看英文原文 Indexes in Memory Optimized Tables

2013-09-25 09:322030
用户头像

发布了 321 篇内容, 共 134.1 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

湖仓一体电商项目(十六):业务实现之编写写入ODS层业务代码

Lansonli

湖仓一体电商项目 11月月更

react hook 源码完全解读

flyzz177

React

Flink Forward Asia 2022 主论坛概览

Apache Flink

大数据 flink 实时计算

React源码分析4-深度理解diff算法

goClient1992

React

【React技术】开发过程中遇到State和生命周期方法在类里面的运用

恒山其若陋兮

前端 11月月更

AI简报-重参数化RepVGG

AIWeker

深度学习 AI简报 11月月更

Centos 7.2安装FTP服务并进行相关设置

指剑

centos ftp 11月月更

【web 开发基础】PHP中数组的遍历(45)

迷彩

数据结构 数组 foreach 11月月更 数组遍历

世界杯火热进行中, 用一个div画个足球场助助兴

南城FE

CSS css3 前端 足球场

Hadoop完全分布式环境搭建(三节点)

指剑

hadoop Bigdata 11月月更

AWS之EC2实例搭建LAMP服务器

指剑

AWS EC2 LAMP 11月月更

(一)OpenStack---M版---双节点搭建---基础环境配置

指剑

centos OpenStack 11月月更

投入上百人、经历多次双 11,Flink 已经足够强大了吗?

Apache Flink

大数据 flink 实时计算

python小知识-内置方法和属性应用:反射和单例

AIWeker

Python python小知识 11月月更

湖仓一体电商项目(十五):实时统计商品及一级种类、二级种类访问排行业务需求和分层设计及流程图

Lansonli

湖仓一体电商项目 11月月更

React源码分析5-commit

goClient1992

React

react源码中的hooks

flyzz177

React

CentOS-7.2部署Squid服务

指剑

centos 11月月更 squid

【web 开发基础】PHP中使用array()语言结构新建数组(43)

迷彩

数据结构 array 11月月更 array() 新建数组

【web 开发基础】PHP中多维数组的声明 (44)

迷彩

数据结构 一维数组 二维数组 11月月更 多维数组

【web 开发基础】PHP中的预定义数组(46)

迷彩

php web开发基础 11月月更 预定义 超全局数组变量

Discourse 的左侧边栏可以修改吗

HoneyMoose

react源码中的fiber架构

flyzz177

React

Python第三方模块:PyQt5简介

指剑

Python PyQt5 11月月更

React源码分析6-hooks源码

goClient1992

React

Spark编程基础(Python版)

指剑

Python spark 11月月更

CentOS-7.2部署OpenLDAP服务器以及客户端

指剑

centos openldap 11月月更

Centos 7.2搭建MariaDB数据库服务器应用与管理

指剑

centos MariaDB 11月月更

Centos 7.2搭建HTTP服务,并进行相关配置

指剑

centos httpd 11月月更

xxl-job客户端架构流程

IT巅峰技术

AWS之EC2搭建WordPress博客

指剑

AWS WordPress 11月月更

内存优化表的索引_架构_Jonathan Allen_InfoQ精选文章