SQL Server内存中OLTP哈希索引设置BUCKET_COUNT的值

时间:2016-04-15 05:48:56

标签: sql sql-server tsql 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);

此变量的最佳值是什么?

1 个答案:

答案 0 :(得分:3)

根据Determining the Correct Bucket Count for Hash Indexes

  

在大多数情况下,铲斗数应该在1到2倍之间   索引键中的不同值的数量。如果索引键包含   很多重复的值,平均有超过10行   每个索引键值,使用非聚集索引

     

您可能无法始终预测特定索引键可能具有或将具有的值。 如果BUCKET_COUNT值在实际键值数的5倍以内,则可以接受效果。

  

主键和唯一索引

     

由于主键索引是唯一的,键中不同值的数量对应于表格中的行数。