数据库课件chapter09.pptVIP

  • 4
  • 0
  • 约1.31万字
  • 约 83页
  • 2018-03-07 发布于河南
  • 举报
数据库课件chapter09

An Introduction to Database System 基于启发式规则的存取路径选择优化(续) 5. 对于用AND连接的合取选择条件 如果有涉及这些属性的组合索引 优先采用组合索引扫描方法 如果某些属性上有一般的索引 则可以用[例1-C4]中介绍的索引扫描方法 否则使用全表顺序扫描。 6. 对于用OR连接的析取选择条件,一般使用全表顺序扫描 An Introduction to Database System 基于启发式规则的存取路径选择优化(续) 二、 连接操作的启发式规则: 1. 如果2个表都已经按照连接属性排序 选用排序-合并方法 An Introduction to Database System An Introduction to Database System 2. 如果一个表在连接属性上有索引 选用索引连接方法 An Introduction to Database System 利用索引连接关系R,S An Introduction to Database System 基于启发式规则的存取路径选择优化(续) 3. 可以选用嵌套循环方法,并选择其中较小的表,确切地讲是占用的块数(b)较少的表,作为外表(外循环的表) 。 理由: 设连接表R与S分别占用的块数为Br与Bs 连接操作使用的内存缓冲区块数为K 分配K-1块给外表 如果R为外表,则嵌套循环法存取的块数为Br+( Br/K-1)Bs 显然应该选块数小的表作为外表 An Introduction to Database System For (i=1;i=Br/k-1;i++) 读入R的第i个集合进入内存RB    for (j=1;j=Bs;j++) 读入S的第j个集合进入内存SB for RB中的每条记录r for SB中的每条记录s coutrs; An Introduction to Database System 9.4 物理优化(续) 9.4.1 基于启发式规则的存取路径选择优化 9.4.2 基于代价的优化 An Introduction to Database System 9.4.2 基于代价的优化 启发式规则优化是定性的选择,适合解释执行的系统 解释执行的系统,优化开销包含在查询总开销之中 编译执行的系统中查询优化和查询执行是分开的 可以采用精细复杂一些的基于代价的优化方法 An Introduction to Database System 基于代价的优化(续) 一、 统计信息 二、 代价估算示例 An Introduction to Database System 基于代价的优化(续) 一、 统计信息 基于代价的优化方法要计算各种操作算法的执行代价,与数据库的状态密切相关 数据字典中存储的优化器需要的统计信息: 1. 对每个基本表 该表的元组总数(N) 元组长度(l) 占用的块数(B) 占用的溢出块数(BO) An Introduction to Database System 基于代价的优化(续) 2. 对基表的每个列 该列不同值的个数(m) 选择率(f) 如果不同值的分布是均匀的,f=1/m 如果不同值的分布不均匀,则每个值的选择率=具有该值的元组数/N 该列最大值 该列最小值 该列上是否已经建立了索引 索引类型(B+树索引、Hash索引、聚集索引) An Introduction to Database System 基于代价的优化(续) 3. 对索引(如B+树索引) 索引的层数(L) 不同索引值的个数 索引的选择基数S(有S个元组具有某个索引值) 索引的叶结点数(Y) An Introduction to Database System 基于代价的优化(续) 二、 代价估算示例 全表扫描算法的代价估算公式 如果基本表大小为B块,全表扫描算法的代价 cost=B 如果选择条件是码=值,那么平均搜索代价 cost=B/2 An Introduction to Database System 基于代价的优化(续) 2. 索引扫描算法的代价估算公式 如果选择条件是码=值 如[例1-C2],则采用该表的主索引 若为B+树,层数为L,需要存取B+树中从根结点到叶结点L块,再加上基本表中该元组所在的那一块,所以cost=L+1 如果选择条件涉及非码属性 如[例1-C3],若为B+树索引,选择条件是相等比较,S是索引的选择基数(有S个元组满足条件)

文档评论(0)

1亿VIP精品文档

相关文档