小编jup*_*ter的帖子

什么是选择性?

问题是我不明白——不,我确实理解选择性——但我一直在阅读它的不同定义,这令人困惑。

我的想法(基于Gail Shaw 的观点):选择性就是谓词所具有的。列不是选择性的。索引没有选择性。运营商没有选择性。选择性是谓词影响的行百分比的度量。

困惑:

SQL Server 执行计划第三版,Grant Fritchey。第223页。他说

对于给定索引,谓词的选择性是匹配行的预期比率。计算表中的总行数 (z),计算所有行中给定列或列组合的不同值 (x) 的数量,然后 (x/z) 给出索引的选择性,用于将列(或多列)与未知值进行比较的相等谓词。

高选择性索引将具有低选择性值。例如,选择性为 0.01 (1%) 意味着优化器期望表中总行的 1% 与谓词匹配。相反,最差的选择性是 1.0(或 100%),这意味着每一行都将匹配谓词条件。

呃?我认为高度选择性,即 100%,即 100% 的值是不同的,是一件好事。但他表示 100% 是最差的选择性。

然后在本文中,他们计算出具有 2 个不同值(性别)的色谱柱的选择性为 0.02%。但 0.02% 肯定不太好。

sql-server

4
推荐指数
1
解决办法
5248
查看次数

标签 统计

sql-server ×1