18、SQL Server 内存优化表与全文索引的索引策略

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值