24、Azure SQL 高级表特性深度解析

Azure SQL 高级表特性深度解析

1. 非聚集哈希索引

非聚集哈希索引是一种内存中的哈希表,它使用列值作为键(例如 EmpID ),并包含指向表中实际行的指针列表。每个哈希表由固定数量的槽(哈希桶)组成,这些槽包含指向实际行的指针数组。具有相同哈希值的行指针会链接到代表其自身哈希桶的列表中。

CREATE TABLE [dbo].[Employees](
      [EmpID] [int] NOT NULL
          CONSTRAINT PK_Employees_EmpID PRIMARY KEY
          NONCLUSTERED HASH (EmpID) WITH (BUCKET_COUNT = 100000),
      [EmpName] [varchar](50) NOT NULL,
      [EmpAddress] [varchar](50) NOT NULL,
      [EmpDEPID] [int] NOT NULL,
      [EmpBirthDay] [datetime] NULL
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)

在创建索引时必须指定桶的数量,这会影响每个桶中指针列表的长度。不同键值的数量与哈希桶数量的比率代表了预期的平均桶链表长度。较长的列表意味着根据键查找行时需要更多的操作。

桶的数量应该在索引键中不同值数量的 1 到 2 倍之间。在实践中,很难估计列中不同值的数量;但是,如果 BUCK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值