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 权限。