暂无图片
关于SQL优化概念疑问
我来答
分享
Dreamer
2020-01-20
关于SQL优化概念疑问
暂无图片 5M

1)选择性(SELECTIVITY)
基数/总行数的百分比
选择性越高,越有利于使用索引。

2)可选择率(Density)
施加指定谓词条件后返回结果集的记录数占未施加任何谓词条件的原始结果集的记录数的比率。可选择率的取值范围显然是0~1,它的值越小,就表明可选择性越好。

疑问:
是不是选择性,是表与生俱来的性质。
而可选择率,必须要根据sql后面where子句过滤后得到结果集的记录数,才有的一个概念?

这两个概念有点混淆,帮忙解释。

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
xiazhangch

基数(Cardinality) 也就是列唯一键(Distinct_keys)的数量,比如性别,该列只有男女之分,所
以这一列基数是2。主键列的基数等于行数。
非主键列的基数怎么算?
select count(distinct column_name) from table
选择性(Selectivity) : 列唯一键(Distinct_Keys)与行数(Num_Rows)的比值
跟 走不走 索引 有木有 关系? 有一点关系

一般来说基数越多,返回的数据就越少。这样的列也更适合去建索引。所以正常情况下 基数越多,越适合建立索引.列的基数太低,就并不适合建立索引。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
oracle event 设置10503事件报错
回答 2
再说一点首先要备份sfile然后按照规范修改参数,在重启数据库。注意中英文混输,以及单双引号,events语法规范,如果有其他event要一起设置上,不然执行以下语句会冲掉原来的event.设置ALT
oracle rac在reconfig的过程中,集群是否不可用?
回答 2
所以也不是真正无缝的故障转移啊
recover corruption list 这个修复坏块的命令,可以停止的吗?
回答 1
停止的话,应该只能ctrlc,kill掉rman会话了。
如何在mysql实现Oracle 的to_number函数?
回答 1
已采纳
mysql 只有简单的cast 转换函数,没有oracle tonumber 这么强大的功能。更强大的功能可以在应用后端实现。
通过kill session 会话信息但是kill 后还是有,怎么处理?
回答 2
因为没有加immediate,altersystemkillsession只会将将会话标志成killed,需要等待pmon去处理,会话状态为KILLED,依然会阻塞其它会话。处理的话会比较慢,直接在操
ogg同步oracle到mysql,字段里面可能有需要转义的字符,怎么配置转义?
回答 1
不推荐在ogg中做转义,虽然他支持。最佳实践就是做简单搬运。在源端处理好。
使用plsql链接oracle 可以链接的上,但是在里面显示不了表结构,语句也不能用,而在oracle的命令行就可以正常使用,求解答
回答 1
已采纳
是在什么窗口下查看的表结构?plsqldev有SQLWindow窗口,执行dml语句。还有命令行CommandWindow(类似oraclesqlplus),可以执行desctable查看表结构。
分区交换
回答 4
从数据字典的角度能直接修改将A1分区变成B的分区吗?
服务器断电导致RAC无法启动
回答 3
看上去像是磁盘头损坏了
以下哪种方法可以回收Oracle表段中的可用空间?
回答 3
已采纳
选ABC;解析:D.altertableshrinkspacecompact会移动表中的行并整理表上的碎片,但并不会调整高水位,也不会释放已占用的空间。只有不带compact选项时,才会调整高水位并释