• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

高级数据库笔记-全局查询

2020-07-02

1. 查询优化的基础

优化就是寻找执行代价(费用和时间)最小的查询执 行策略,使系统执行效率降到最低

  • 局部执行代价
    • 主要指输入/输出次数(I/O代价)及CPU 处理代价
      • 数据只有读到内存才能进行连接
  • 网络传输代价
    • 指传输启动代价和数据传输代价

要读写的块数/每秒读写的块数=代价

1.1. 优化的内容

  • 执行运算的次序
  • 执行每种运算的方法
  • 所访问的副本场地。如:选择就近的场地,节约传输代价
  • 执行运算的场地的选择,使总的传输代价或总代价最低

1.2. 关系代数

1.2.1. 等价变换

1.3. 查询树

叶子表示关系,中间节点表示 运算,前序遍历关系表示运算次序

2. 查询处理概述

SQL–非过程化的关系数据库语言,是元组演算语言

查询处理问题

  • 将演算查询转换为代数操作
  • 选择最好的执行计划

对于分布式数据库,查询处理器必须考虑通信代价和选择最佳场地

3. 查询处理层次

3.1. 查询分解(Query Decomposition

基于全局概念模式将演算查询分解为代数查询

1
2
3
Step1 – 演算规范化 
Step2 – 语义分析,去掉不正确的查询。 Step3 – 简化,去除冗余的部分
Step4 – 将演算查询转化为优化的代数查询。

3.1.1. 规范化

对于SQL语句,对Where子句中的谓词表示进行规范化

3.1.2. 分析

拒绝类型不正确或语义不正确的查询

3.1.3. 约简

应用转换规则、幂等规则消除冗余

3.1.4. 查询重写

将用户请求构成的查询树进行等价变换

4. 数据本地化

数据本地化将介绍全局查询到片段查询的变换。 即利用全局关系与其片段关系的等价变换,将分布 查询中的全局关系替换为对片段关系的查询,变换 后的查询称为片段查询

4.1. 片段查询优化

1
2
3
4
5
6
7
准则1:对于一元运算,根据一元运算的重复律,将叶子节点之前的选择运算作用于片段,如果不满足片段的限定条 件,则置为空关系。

准则2:对于联接运算的树,若联接条件不满足,则将其置为空 关系。

准则3:在查询树中,将联接运算(∞)下移到并运算(∪)之 前执行。

准则4:消去不影响查询运算的垂直片段。
  • Notes
  • Sql
  • Notes
高级数据库笔记-分布查询
高级数据库笔记-设计
  1. 1. 1. 查询优化的基础
    1. 1.1. 1.1. 优化的内容
    2. 1.2. 1.2. 关系代数
      1. 1.2.1. 1.2.1. 等价变换
    3. 1.3. 1.3. 查询树
  2. 2. 2. 查询处理概述
  3. 3. 3. 查询处理层次
    1. 3.1. 3.1. 查询分解(Query Decomposition
      1. 3.1.1. 3.1.1. 规范化
      2. 3.1.2. 3.1.2. 分析
      3. 3.1.3. 3.1.3. 约简
      4. 3.1.4. 3.1.4. 查询重写
  4. 4. 4. 数据本地化
    1. 4.1. 4.1. 片段查询优化
© 2024 何决云 载入天数...