SQL Server 内存优化表与全文索引的索引策略
1. 内存优化表索引概述
SQL Server 的内存优化表虽然完全存储在内存中,但仍然需要索引来查找特定数据或过滤结果集。SQL Server 为内存优化表支持两种索引选项:哈希索引和范围索引。每个内存优化表最多可支持八个索引。若定义了主键,它将由这两种索引类型之一支持,并作为允许的索引之一;若未定义主键,则表创建时必须至少有一个索引。而且,内存优化表创建后不允许更改索引,因此创建表时需定义所有索引。
2. 哈希索引
哈希索引将表中的数据分隔到固定数量的存储桶中。插入表的行使用哈希函数分配到可用的存储桶,这些存储桶使查询能够基于点查找操作返回特定行。哈希索引适用于需要检索表中单个行的查询工作负载。
创建哈希索引时,存储桶的数量取决于表中计划或预期的行数。行数较多时,需要更多的存储桶。随着每个存储桶中行数的增加,检索数据所需的时间也会增加,因此行与存储桶的比例需要仔细考虑。
一般建议为哈希索引过度分配存储桶,推荐的存储桶数量范围是行数的 2 到 5 倍。但实际使用时,需根据环境中表的使用方式来确定存储桶大小。
以下是创建两个具有不同存储桶数量的内存优化表的示例代码:
USE MemOptIndexing
GO
IF OBJECT_ID('dbo.SalesOrderHeader_low') IS NOT NULL
DROP TABLE dbo.SalesOrderHeader_low
CREATE TABLE dbo.SalesOrderHeader_low(
SalesO
超级会员免费看
订阅专栏 解锁全文

1114

被折叠的 条评论
为什么被折叠?



