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