首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试564】在Oracle中,什么是索引的选择性?

【DB笔试面试564】在Oracle中,什么是索引的选择性?

作者头像
小麦苗DBA宝典
发布2019-09-29 15:42:18
8340
发布2019-09-29 15:42:18
举报

题目部分

在Oracle中,什么是索引的选择性?

答案部分

索引的选择性(Index Selectivity,索引的选择度或索引的选择率)是指索引列中不同值的记录数与表中总记录数的比值。索引的选择性的取值范围是[0,1]。例如,某个表的记录数是1000条,而该表的索引列的值只有900个不同的值(有100个是相同或是空),所以,该列索引的选择性为900/1000=0.9。对于索引的选择性,值越高那么表示该列索引的效率也就越高。可以使用如下的SQL来计算索引的选择性:

SELECT COUNT(DISTINCT NAME)/COUNT(*) FROM TB_A;

这种方法的优点是在创建索引前就能评估索引的选择性。当索引被收集了最新的统计信息时,可以使用如下的SQL语句查询索引的选择性:

SELECT INDEX_NAME,DISTINCT_KEYS/NUM_ROWS SELECTIVITY FROM DBA_INDEXES;

毋庸置疑,主键的选择性为1。选择性越接近1,那么该索引就越好。

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档