第6章 查询优化.ppt
《第6章 查询优化.ppt》由会员分享,可在线阅读,更多相关《第6章 查询优化.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6章章 查询优化查询优化Silberschatz,Korth and Sudarshan14.2Database System Concepts 3rd Edition主要内容主要内容n概述概述n用于代价估算的统计信息用于代价估算的统计信息n关系代数表达式的转换关系代数表达式的转换n基于代价的优化算法基于代价的优化算法n物化视图与视图维护物化视图与视图维护Silberschatz,Korth and Sudarshan14.3Database System Concepts 3rd Edition概述概述n一个给定查询有多种可选择的求值方法一个给定查询有多种可选择的求值方法等价表达式等价表
2、达式一个操作有若干不同算法一个操作有若干不同算法(Chapter 5)n一个查询求值方法的好坏带来的代价差别可能是巨大的一个查询求值方法的好坏带来的代价差别可能是巨大的n例如例如:执行执行r X s 后续选择后续选择r.A=s.B 比执行一个同样条比执行一个同样条件的连接慢得多件的连接慢得多n需要估算操作的代价需要估算操作的代价依赖于数据库维护的统计信息依赖于数据库维护的统计信息例如元组数例如元组数,连接属性的不同值的数目连接属性的不同值的数目,等等等等需要对中间结果估算统计信息以便对复杂表达式计算代价需要对中间结果估算统计信息以便对复杂表达式计算代价Silberschatz,Korth an
3、d Sudarshan14.4Database System Concepts 3rd Edition概述概述Silberschatz,Korth and Sudarshan14.5Database System Concepts 3rd Edition概述概述n对一个表达式的查询求值方案的生成涉及几个步对一个表达式的查询求值方案的生成涉及几个步骤骤:1.生成逻辑上等价的表达式生成逻辑上等价的表达式利用等价规则将一个表达式转换成另一个等价的表利用等价规则将一个表达式转换成另一个等价的表达式达式2.注解注解(Annotate)结果表达式以得到其他查询计划结果表达式以得到其他查询计划3.基于估算代
4、价选择最廉价的计划基于估算代价选择最廉价的计划n整个过程称为基于代价的优化整个过程称为基于代价的优化Silberschatz,Korth and Sudarshan14.6Database System Concepts 3rd EditionSQL ConstructsnSECLECT(DISTINCT)nFROM nWHERE nGROUP BY nHAVING nORDER BY Silberschatz,Korth and Sudarshan14.7Database System Concepts 3rd EditionSQL SemanticsnTake Cartesian prod
5、uct of FROM tablesnProject only those referenced columnsnWHERE:apply all filters in WHEREnGROUP BY:form groups on resultsnHAVING:apply filter to groups nORDER BY:make sure results in right ordernDISTINCT:remove duplicatesnQ:Is this“operational semantics”efficient?nDifferent plans:mainly different in
6、 the first threeSilberschatz,Korth and Sudarshan14.8Database System Concepts 3rd EditionOptimization:Different StrategiesnOptimal approach:Enumerate(枚举枚举)each possible planMeasure its performance by running itPick the fastest onenHeuristics approach:fixed heuristics all the way through plan construc
7、tione.g.:always nested loop joins,indexed relation as innere.g.:order relations from smallest to biggestSilberschatz,Korth and Sudarshan14.9Database System Concepts 3rd EditionCost-based OptimizationnPlan space:what is the space of query plans?nCost estimation:how to estimate the cost,without execut
8、ing each?nSearch algorithm:how to search the space,as guided by cost estimatesSilberschatz,Korth and Sudarshan14.10Database System Concepts 3rd EditionSpace of Query PlansnSelections:algorithms:sequential,index scannJoins:algorithms:nested-loop,sort merge,hashnOrdering/Grouping:can an“interesting or
9、der”be produced by join/selections?algorithm:sorting,hash-basednThey interleave with each other!Silberschatz,Korth and Sudarshan14.11Database System Concepts 3rd EditionHuge Space!Assumptions to HelpnTypical assumptions to help reduce the space:Projections:pushed down to reduce#of columnsSelections:
10、pushed down to reduce#of rowsJoins:left-deep joins avoid Cartesian products;delay it in the planQ:how to avoid Cartesian products?May miss an optimal plan!Silberschatz,Korth and Sudarshan14.12Database System Concepts 3rd EditionCost/Size EstimationnAccurate relativelygoal is to compare plans,not to
11、predict exact costmore of an art than an exact sciencenEach operator:input size,cost,output sizeestimate cost based on input sizeestimate output size(for next operator)or selectivityselectivity=ratio of output to inputSilberschatz,Korth and Sudarshan14.13Database System Concepts 3rd EditionCost Esti
12、mationnInput:simple DB statistics#of tuples&disk pages#of distinct values per column statistics updated periodicallynAssumption of attribute/predicate independenceWhen no estimate available,use magic numbernNew/Alternative approaches:sampling,histogram of DBSilberschatz,Korth and Sudarshan14.14Datab
13、ase System Concepts 3rd EditionSelectivity Factors:Range SelectionnWhat is assumed in these formulas?ncolumn value1:F=(maxValue-value1)/rangeOfValuencolumn in value1:value2F=(value2-value1)/rangeOfValueSilberschatz,Korth and Sudarshan14.15Database System Concepts 3rd EditionSearch the Plan SpacenBas
14、eline:exhaustive searchenumerate all combinations,and compare their costnSearch method parameters:plan tree development:construction:bottom-up,top-downmodification:improve a somehow-constructed treealgorithms:heuristic selections:make choices based on heuristicsbranch and bound:search bounded by the
15、 current best treehill climbing:find“nearby”plans with lowest costdynamic programming:construction by greedy selectionsSilberschatz,Korth and Sudarshan14.16Database System Concepts 3rd EditionWhat You Should KnownQuery optimization is critical for any commercial DBMSgood/bad can be orders of magnitu
16、denThe 3 components of the System-R style optimizationPlan space definitionCost estimationSearch algorithmhuge number of alternative,semantically equivalent plansnIdeal goal:map a declarative query to the most efficient plan nConventional wisdom:avoid bad plansnState of the art:industry:most optimiz
17、ers are System-R styleacademic:always a core database research topicSilberschatz,Korth and Sudarshan14.17Database System Concepts 3rd Edition用于代价估算的统计信息用于代价估算的统计信息(回顾回顾)(10/14)nnr:关系关系r 中的元组个数中的元组个数nbr:包含包含r 中元组的块数中元组的块数nsr:r 中元组的大小中元组的大小nfr:r 的块因子的块因子 即即,能放入一块之中的能放入一块之中的r 的元组数的元组数nV(A,r):r 中出现的中出现的
18、A属性上的不同值的个数属性上的不同值的个数;等于等于A(r)的大小的大小nSC(A,r):关系关系r 中属性中属性A的的选择基数选择基数,满足满足A上等值条件上等值条件的平均记录数的平均记录数n若若r 中元组在文件中中元组在文件中连续存放连续存放,则则:Silberschatz,Korth and Sudarshan14.18Database System Concepts 3rd Edition关于索引的目录信息关于索引的目录信息(回顾回顾)nfi:索引索引i 的内节点的平均扇出的内节点的平均扇出,适用于树适用于树结构索引结构索引,如如B+树树nHTi:索引索引i 的层数的层数 即高度即高度
19、对于关系对于关系r上上A 属性的平衡树索引属性的平衡树索引(如如B+-树树)HTi=logfi(V(A,r)n对于散列索引对于散列索引,HTi 为为1nLBi:索引索引i 的底层索引块数的底层索引块数 即索引叶即索引叶子层的块数子层的块数Silberschatz,Korth and Sudarshan14.19Database System Concepts 3rd Edition查询代价的度量查询代价的度量(回顾回顾)n典型地典型地,磁盘存取是决定性的代价磁盘存取是决定性的代价,也相也相对容易估算对容易估算n来自磁盘的块传送次数被用作求值的实来自磁盘的块传送次数被用作求值的实际代价的度量际代
20、价的度量n假设所有块传送都具有相同代价假设所有块传送都具有相同代价实际的优化器不作此假设实际的优化器不作此假设,并区分顺序与随并区分顺序与随机磁盘存取机磁盘存取n不包括写输出到磁盘的代价不包括写输出到磁盘的代价n记算法记算法A的代价估算为的代价估算为EASilberschatz,Korth and Sudarshan14.20Database System Concepts 3rd Edition统计信息例统计信息例nfaccount=20 (一块可放入account 的20个元组)nV(branch-name,account)=50 (50个分行)nV(balance,account)=50
21、0 (500 个不同的balance 值)naccount =10000 (account 有10,000条元组)n假设account 上存在下列索引:属性branch-name上的主B+-树索引属性balance上的辅助B+-树索引Silberschatz,Korth and Sudarshan14.21Database System Concepts 3rd Edition选择的大小估算选择的大小估算n等值选择等值选择 A=v(r)SC(A,r):满足选择的记录数满足选择的记录数 SC(A,r)/fr :这些记录将占用的块数这些记录将占用的块数二分搜索的代价估算为二分搜索的代价估算为键属性
22、上的等值条件键属性上的等值条件:SC(A,r)=1Silberschatz,Korth and Sudarshan14.22Database System Concepts 3rd Edition选择的大小估算选择的大小估算n涉及比较的选择涉及比较的选择形如形如 A V(r)的选择的选择令令c 表示满足条件的估算元组数表示满足条件的估算元组数若若 min(A,r)和和 max(A,r)在目录中可得在目录中可得c=0 if v min(A,r)c=若没有统计信息若没有统计信息,c 可假设为可假设为 nr/2 A V(r)的情形是对称的的情形是对称的Silberschatz,Korth and S
23、udarshan14.23Database System Concepts 3rd Edition复杂选择的实现复杂选择的实现n条件条件 I 的的选择度选择度是关系是关系r 中一条元组满足中一条元组满足 I 的概率的概率,如果如果si 是是r 中中满足的元组数满足的元组数,则则 i 的选择度为的选择度为si/nrn合取合取:1 2.n(r).结果中元组数的估算值为:n析取析取:1 2.n(r).元组数的估算值为:n否定否定:(r).元组数的估算值为:nr size(r)Silberschatz,Korth and Sudarshan14.24Database System Concepts 3
24、rd Edition连接的大小的估算连接的大小的估算n卡氏积卡氏积 r x s 包含包含 nr.ns 元组元组,每个元组占用每个元组占用sr+ss 字字节节n若若 R S=,则则 r s 等同于等同于 r x sn若若 R S 是是R 的键的键,则则s 的一条元组将与的一条元组将与r 的最多一条的最多一条元组连接元组连接n因此因此,r s 中的元组数不大于中的元组数不大于s 中的元组数中的元组数n若若 R S 在在S 中是引用中是引用R 的外键的外键,则则r s中的元组数中的元组数正好等于正好等于s中的元组数中的元组数R S 是引用是引用S 的外键的情形是对称的的外键的情形是对称的n在查询例在
25、查询例depositor customer 中中,depositor 中的中的customer-name 是是customer 的外键的外键n 因此因此,结果具有结果具有 ndepositor 条元组条元组,即即 5000Silberschatz,Korth and Sudarshan14.25Database System Concepts 3rd Edition连接操作连接操作:例子例子n连续用例连续用例:depositor customern连接例的目录信息连接例的目录信息:ncustomer=10,000fcustomer =25,这意味着这意味着bcustomer=10000/25=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 查询优化 查询 优化
限制150内