查询优化 In Oracle

正文内容加载中...
posted @ 2019-08-27 20:16 fxjwind 阅读 (18) 评论 (0) 编辑

子查询优化 - Hyper

摘要:Unnesting Arbitrary Queries - T Neumann, A KemperThe Complete Story of Joins (in HyPer) - Thomas Neumann, Viktor Leis, Alfons Kemper Unnesting Arbitra 阅读全文
posted @ 2019-08-21 15:24 fxjwind 阅读 (14) 评论 (0) 编辑

CMU Database Systems - Distributed OLTP & OLAP

摘要:OLTP scale-up和scale-out scale-up会有上限,无法不断up,而且相对而言,up升级会比较麻烦,所以大数据,云计算需要scale-out scale-out,就是分布式数据库,刚开始肯定是Shared Nothing,但是分布式也引入了更高的架构复杂度和维护成本 所以现在的 阅读全文
posted @ 2019-08-20 19:31 fxjwind 阅读 (20) 评论 (0) 编辑

SubQuery优化

摘要:https://zhuanlan.zhihu.com/p/60380557 子查询,分两种情况, 对于在From中的,称为‘derived table’,这种场景比较简单 对于在select,where中的,scalar表达式,这是主要要考虑的对象,因为这种情况cross了relational和sc 阅读全文
posted @ 2019-08-15 15:15 fxjwind 阅读 (30) 评论 (0) 编辑

Calcite分析 - RelTrait

摘要:RelTrait 表示RelNode的物理属性 由RelTraitDef代表RelTrait的类型 RelTraitDef,主要可以分为3种, RelCollationTraitDef,排序 RelDistributionTraitDef,分布 ConventionTraitDef,转换 RelTr 阅读全文
posted @ 2019-08-12 15:36 fxjwind 阅读 (63) 评论 (0) 编辑

fxjwind Calcite分析 - Volcano模型

摘要:参考,https://matt33.com/2019/03/17/apache-calcite-planner/ Volcano模型使用,分为下面几个步骤, 1和2 初始化 addRelTraitDef,就是把traitDef加到这个结构里面 3. 增加Rule a. 更新classOperands 阅读全文
posted @ 2019-08-09 10:47 fxjwind 阅读 (184) 评论 (0) 编辑

CMU Database Systems - Database Recovery

摘要:数据库数据丢失的典型场景如下, 数据commit后,还没有来得及flush到disk,这时候crash就会丢失数据 当然这只是fail的一种情况,DataBase Recovery要讨论的是,在各种fail的情况下,如何保证, 1. 已经commit的transaction的数据不丢失;2. 没有部 阅读全文
posted @ 2019-08-06 21:19 fxjwind 阅读 (21) 评论 (0) 编辑

Calcite分析 - Rule

摘要:Calcite源码分析,参考: http://matt33.com/2019/03/07/apache-calcite-process-flow/ https://matt33.com/2019/03/17/apache-calcite-planner/ Rule作为Calcite查询优化的核心, 阅读全文
posted @ 2019-07-31 21:04 fxjwind 阅读 (52) 评论 (0) 编辑

CMU Database Systems - MVCC

摘要:MVCC是一种用空间来换取更高的并发度的技术 对同一个对象不去update,而且记录下每一次的不同版本的值 存在不会消失,新值并不能抹杀原先的存在 所以update操作并不是对世界的真实反映,这是一种便于应用的简化实现 MVCC的历史可以追溯到70年代,数据库的主流技术大部分都停滞在那个年代 MVC 阅读全文
posted @ 2019-07-25 20:46 fxjwind 阅读 (35) 评论 (0) 编辑

CMU Advanced DB System - Query Optimizer

摘要:Overview Optimizer模块所处在的位置如图, 那么做optimize的目的是, 找出所有‘correct’执行计划中‘cost’最低的 那么这里首先要明确的概念,‘correct’,关系代数等价,产生相同的结果集;所以所有优化的前提是需要是等价变换 但是等价集合,即所有等价的执行计划的 阅读全文
posted @ 2019-07-22 17:29 fxjwind 阅读 (36) 评论 (0) 编辑

统计