这篇文章主要讲解了“PostgreSQL物理优化中的create_index_paths->generate_bitmap_or_paths函数分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL物理优化中的create_index_paths->generate_bitmap_or_paths函数分析”吧!该函数从条件子句链表中寻找OR子句,如找到并且可以处理则生成BitmapOrPath。
下面是BitmapOrPath访问路径样例:Cost相关
注意:实际使用的参数值通过系统配置文件定义,而不是这里的常量定义!generate_bitmap_or_paths函数
create_index_paths->generate_bitmap_or_paths函数从条件子句链表中寻找OR子句,如找到并且可以处理则生成BitmapOrPath.函数返回生成的链表BitmapOrPaths.测试脚本如下启动gdb跟踪查看输入参数,clauses是链表,只有一个元素(BoolExpr类型,即OR子句);other_clauses为NULL遍历clausees子句,rinfo->clause即BoolExpr(OR子句)遍历OR子句的参数参数的第一个元素,BoolExpr,boolop操作符为AND_EXPRAND子句的参数进入b免费主机域名uild_paths_for_OR函数遍历索引,第一个索引是idx_dwxx_dwdz与约束条件不匹配((dwbh > ‘10000’ and dwbh
下一个索引是idx_dwxx_predicate_dwmc/idx_dwxx_expr,同样不匹配,继续寻找索引,直至索引t_dwxx_pkey构建索引访问路径回到generate_bitmap_o免费主机域名r_paths函数递归进入generate_bitmap_or_paths完成第一轮循环这是第二个AND子句完成第二轮循环结束循环,构建BitmapOrPath进入create_bitmap_or_path,调用函数cost_bitmap_or_node计算成本计算结果,与执行计划中的信息相匹配”BitmapOr (cost=84.38..84.38 rows=3422 width=0)”回到generate_bitmap_or_paths感谢各位的阅读,以上就是“PostgreSQL物理优化中的create_index_paths->generate_bitmap_or_paths函数分析”的内容了,经过本文的学习后,相信大家对PostgreSQL物理优化中的create_index_paths->generate_bitmap_or_paths函数分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!
小编给大家分享一下oracle进程满了登陆不上数据库怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! sqlplus/assysdba无法登陆报ORA-000免费主机域名20:maximumnumberofprocesses(2000)e…