Ale*_*kov 5 sql t-sql sql-server sql-server-2014
在内存优化表中创建哈希索引时,我可以设置变量的值 BUCKET_COUNT
CREATE TABLE [Table1] (
[Id] INT NOT NULL IDENTITY(1,1) PRIMARY KEY NONCLUSTERED HASH
WITH (BUCKET_COUNT = 1000000),
[Name] NVARCHAR(100) NOT NULL
)
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
Run Code Online (Sandbox Code Playgroud)
该变量的最佳值是多少?
在大多数情况下,存储桶计数应介于索引键中不同值数量的 1 到 2 倍之间。如果索引键包含大量重复值,平均每个索引键值超过 10 行,请改用非聚集索引
您可能并不总是能够预测特定索引键可能具有或将具有多少个值。如果 BUCKET_COUNT 值在实际键值数量的 5 倍以内,性能应该是可以接受的。
和:
主键和唯一索引
由于主键索引是唯一的,因此键中不同值的数量对应于表中的行数。