sys.dm_db_xtp_hash_index_stats (Transact-SQL)

这些统计信息可用来了解和优化存储桶计数。 它还可用于检测索引键具有许多重复项的情况。

平均链长度较大指示将许多行哈希处理至同一个存储桶。 之所以出现这种情况,原因可能是:

  • 如果空存储桶的数目较少,或平均链长度和最大链长度接近,则存储桶总数可能会过少。 这将导致许多不同的索引键哈希处理至同一个存储桶中。

  • 如果空存储桶的数目较高,或最大链长度比平均链长度高,则可能许多行具有重复的索引键值,或者键值存在偏斜。 索引键相同的所有行都将哈希处理至同一个存储桶,因而,该存储桶有较长的链长度。

链长度较长可能会显著影响针对各单独行的所有 DML 操作的性能,包括 SELECT 和 INSERT。 链长度较短以及空存储桶计数较高指示 bucket_count 过高。 这将降低索引扫描的性能。

sys.dm_db_xtp_hash_index_stats 扫描整个表。 因此,如果在您的数据库中有大型表,sys.dm_db_xtp_hash_index_stats 可能会用较长的时间运行。

有关详细信息,请参阅决定哈希索引的正确存储桶数

适用于:SQL Server(SQL Server 2014 到当前版本)。

列名

类型

说明

object_id

int

父表的对象 ID。

index_id

int

索引 ID。

total_bucket_count

bigint

索引中哈希存储桶的总数。

empty_bucket_count

bigint

索引中空哈希存储桶的数量。

avg_chain_length

bigint

索引中所有哈希存储桶的平均行链长度。

max_chain_length

bigint

哈希存储桶中的最大行链长度。

权限

要求对服务器具有 VIEW DATABASE STATE 权限。

请参阅

概念

内存优化表动态管理视图 (Transact-SQL)