TLuL2(RD<S)≡rL(R)p<π12(R) Attr(L1 c Attr(R), Attr(L2)g Attr(S), Attr(F)c Attr Li U L2) (8)选择对∪、∩、一的分配率 0F(RUS)≡0F(R)∪0F(S) (9)投影对∪的分配率 TL(RUS)≡πL(R)∪πL(S) (10)D<、×、∪、∩的结合率 (RD<S)<T≡RD<(SD<T) 52,2查询优化的一般策略 (1)0优先 (2)使用频率高的属性建索引 (3)连接属性索引排序 (4)π、0同时进行 5)0+×→D< (6)公共子表达式 523代数优化算法 (1)生成查询语法树 (2)0移至树叶 (3)利用规则(3)合并投影 4)利用×、D<的结合率,调整×、D<的执行顺序 (5)将×与相关操作转换为D4 (6)在叶子节点添加T 524例子 5.3依赖于存取路径的规则优化 531选择操作 最初方法:顺序扫描 存取路径:索引(B+树),动态散列 启发式规则P122 532连接操作 (1)嵌套循环法πL1∪L2(R F S) ≡πL1 (R) F πL2 (R) Attr(L1) Attr(R),Attr(L2) Attr(S),Attr(F) Attr(L1∪L2) (8)选择对∪、∩、-的分配率 σF(R∪S) ≡σF(R) ∪σF(S) (9)投影对∪的分配率. πL (R∪S) ≡πL (R) ∪πL (S) (10) 、×、∪、∩的结合率 (R S) T≡R (S T) 5.2.2 查询优化的一般策略 (1)σ优先 (2)使用频率高的属性建索引 (3)连接属性索引/排序 (4)π、σ同时进行 (5)σ+×→ (6)公共子表达式 5.2.3 代数优化算法 (1)生成查询语法树 (2)σ移至树叶 (3)利用规则(3)合并投影 (4)利用×、 的结合率,调整×、 的执行顺序 (5)将×与相关操作转换为 (6)在叶子节点添加π 5.2.4 例子 5.3 依赖于存取路径的规则优化 5.3.1 选择操作 最初方法:顺序扫描 存取路径:索引(B+树),动态散列 启发式规则 P122 5.3.2 连接操作 (1)嵌套循环法