2017年7月13日
摘要: 上一节我们介绍了PostgreSQL的子查询优化,子查询优化把一部分可以优化的子查询上拉到主查询成为join。 preprocess_expression 将表达式(目标列,where,join,having)简化表达式 eval_const_expressions canonicalize_qua 阅读全文
posted @ 2017-07-13 17:30 bitError 阅读(1705) 评论(0) 推荐(0) 编辑
摘要: grouping_planner主要做了3个工作: 1. 对集合进行处理 2. 对非SPJ函数进行优化 3. 对SQL查询语句进行物理优化 grouping_planner实现代码如下: query_planner生成最优查询路径 产生两个最优查询路径,主要是cheatest_path(未排序)和s 阅读全文
posted @ 2017-07-13 17:29 bitError 阅读(1331) 评论(0) 推荐(1) 编辑
摘要: 子查询优化 上拉子连接 上拉子连接主要是把ANY和EXIST子句转换为半连接 pull_up_sublinks_jointree_recurse递归上拉子连接函数 pull_up_sublinks_qual_recurse上拉限制条件中的子连接 用于递归上拉限制条件中存在的子连接(ANY,EXIST 阅读全文
posted @ 2017-07-13 17:29 bitError 阅读(2893) 评论(0) 推荐(0) 编辑
摘要: 事务简介 事务管理器:有限状态机 日志管理器 CLOG:事务的执行结果 XLOG:undo/redo日志 锁管理器:实现并发控制,读阶段采用MVCC,写阶段采用锁控制实现不同的隔离级别 PostgreSQL为每条事务创建一个postgre进程,并发执行事务。采用分层的机制执行事务,上层事务块和底层事 阅读全文
posted @ 2017-07-13 17:24 bitError 阅读(8782) 评论(0) 推荐(0) 编辑