索引的Selectivity
选择性,表示一个行集当中的一小部分行
这个行集可以是基表,视图,或者一个join的结果集,或者一次group by操作
选择性受限于查询谓词,比如,last_name='Smith',或者一个联合谓词,比如,last_name='Smith' ADN job_type='Clerk'
一个谓词就像一个过滤器,从行集当中过滤掉某些行
因此,一个谓词选择性意味着一个行集当中有多少行将通过谓词的过滤
选择性的取值范围是∈[0,1]
0表示没有行从行集当中被过滤出来
1表示所有行都将被过滤出来
当统计信息可用时,优化器会依据统计信息评估选择性
比如,last_name='Smith',选择性被设置为last_name的不同值的数目的倒数,因为查询所选择的行包含N个不同的值
hr@ORCL> select index_name,distinct_keys/num_rows selectivity from user_indexes;INDEX_NAME SELECTIVITY------------------------------ -----------REG_ID_PK 1COUNTRY_C_ID_PK 1LOC_ID_PK 1LOC_CITY_IX 1LOC_STATE_PROVINCE_IX 1LOC_COUNTRY_IX .608695652DEPT_ID_PK 1DEPT_LOCATION_IX .259259259