Oracle 执行计划(3)- 两表连接基数 1 公式: 基数 = 连接选择率 * 过滤条件 1 基数 + 过滤条件 2 的基数 连接选择率 =((num_rows( 表 1)-num_nulls( 表 1 连接字段 ))/num_rows( 表 1))* ((num_rows( 表 2)-num_nulls( 表 2 连接字段 ))/num_rows( 表 2))
Oracle 执行计划(3)- 两表连接基数
1 公式:
基数 = 连接选择率 * 过滤条件 1 基数 + 过滤条件 2 的基数
连接选择率 =((num_rows( 表 1)-num_nulls( 表 1 连接字段 ))/num_rows( 表 1))*
((num_rows( 表 2)-num_nulls( 表 2 连接字段 ))/num_rows( 表 2)) /
Greater(num_distinct( 表 1 连接字段 ),num_distinct( 表 2 连接字段 ))
create table t1 as
select trunc(dbms_random.value(0,25)) filter1,
trunc(dbms_random.value(0,30)) join1,
lpad(rownum,10) v1,
rpad('x',100) padding1
from all_objects
where rownum
基数=1/40*10000/30*10000/50=1/40*333*200=1665 与结果集相当.因为该版本没有消除掉连接条件.
查看更多关于Oracle执行计划(3)-两表连接基数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did94447