一、选择率(Selectivity):选择率是指满足条件的行在查询的结果集中所占的比率
一年中有12个月 --已知条件
出生日期可能散布在这12个月中 --假设
出生在任何一个月份中的人占整个教室总人数的1/12 --月的选择率
请求一个特定的月份 --谓词
所请求的月份确实存在 --边界检查
教室中总人数为120 --基本基数
得到答案为120*1/12=10 --计算基数
2、与选择率相关的视图
user_tab_col_statistics.NUM_DISTINCT --12user_tab_col_statistics.DENSITY --1/12
user_tab_col_statistics.LOW_VALUE --1
user_tab_col_statistics.HIGH_VALUE --12
user_tab_col_statistics.NUM_NULLS
user_tab_statistics.NUM_ROWS
--月份 = 10 不考虑空值:1/12
基本选择率=density=1/num_distinct
--月份 = 10 考虑空值:1/12*1
选择率=基本选择率*(num_rows-num_nulls)/num_rows
-- 月份 > 8 (12-8)/(12-1)
选择率=(high_value-limit)/(high_value-low_value)
--月份 >= 8 (12-8)/(12-1)+1/12
选择率=(high_value-limit)/(high_value-low_value)+1/num_distinct
--月份 < 8 (8-1)/(12-1)
选择率=(limit-low_value)/(high_value-low_value)
--月份 <= 8 (8-1)/(12-1)+1/12
选择率=(limit-low_value)/(high_value-low_value)+1/num_distinct
--月份 >= 6 and 月份 <= 9 (9-6)/(12-1)+1/12+1/12
选择率=(high_limit-low_limit)/(high_value-low_value)+1/num_distinct+1/num_distinct
--月份 >= 6 and 月份 < 9 (9-6)/(12-1)+1/12
选择率=(high_limit-low_limit)/(high_value-low_value)+1/num_distinct
--月份 > 6 and 月份 <= 9 (9-6)/(12-1)+1/12
选择率=(high_limit-low_limit)/(high_value-low_value)+1/num_distinct
二、基数(Cardinality)
基数=选择率*总行数(num_rows)
**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name: guoyJoe
QQ: 252803295
Email: oracledba_cn@hotmail.com
Blog: http://blog.csdn.net/guoyJoe
ITPUB: http://www.itpub.net/space-uid-28460966.html
OCM: http://education.oracle.com/education/otn/YGuo.HTM
_____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!
答案在:http://blog.csdn.net/guoyjoe/article/details/8624392
Oracle@Paradise 总群:127149411
Oracle@Paradise No.1群:177089463(已满)
Oracle@Paradise No.2群:121341761
Oracle@Paradise No.3群:140856036