2016-04-15 31 views
3

设定值当在内存中创建优化表散列索引我可以设置为可变BUCKET_COUNTSQL服务器在内存OLTP散列索引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); 

什么是此变量的最优值的价值?

回答

2

根据Determining the Correct Bucket Count for Hash Indexes

在大多数情况下铲斗计数应该是1和2之间倍,在索引关键字的数 不同值。如果索引键包含 很多重复值,平均而言,每个索引键值有多于10行,使用非聚集索引而不是

您可能无法始终预测特定索引有多少个值关键可能有或将有。 如果BUCKET_COUNT值在键值的实际数量的5倍以内,性能应该可以接受。

和:

主键和唯一索引

因为主键索引是唯一的,不同值中的键对应的行中的数字的数量桌子。