索引统计信息(Index Statistics)是数据库中存储的关于表索引特征和数据分布的统计数据。这些统计信息帮助数据库的查询优化器(Query Optimizer)估计执行特定查询所需的成本,包括预测满足查询条件的行数、决定使用哪个索引以及如何使用这些索引来优化查询执行计划。索引统计信息对于数据库能否选择最有效的查询执行策略至关重要。
索引统计信息包含什么?
- 基数(Cardinality):指的是索引中唯一值的估计数量,反映了索引的选择性。基数越高,意味着通过该索引过滤数据的能力越强。
- 数据分布:包括值的分布情况,可能通过直方图(Histograms)来表示,直方图显示了不同值范围内数据行的分布。
- 索引大小:索引占用的物理存储空间大小。
- 页数:索引中页(Page)的数量,页是存储索引数据的基本单位。
索引统计信息的作用
查询优化器使用索引统计信息来:
- 选择索引:决定对于给定的查询条件,哪个索引最有可能提高查询性能。
- 估计成本和行数:基于数据的分布和索引的选择性,预测执行特定查询路径所需要处理的数据量。
- 优化查询计划:比较不同的查询执行策略,选择成本最低(预计最快)的执行计划。