《数据库系统概念》17-查询优化

1、查询优化是为处理查询找出一个好的策略的过程。一个查询通常有多种方法能够计算出结果,系统负责将用户输入的查询转换成可以更有效执行的等价查询。 复杂的查询操做涉及多级存取磁盘的操做,因为从磁盘中传输数据比从内存中要慢得多,因此有必要进行查询优化,以选择一个可以最小化磁盘存取的方法。 有不少等价规则可供将一个表达式转化成等价表达式,可使用这些规则系统地产生与所给查询等价的全部表达式。 选择查询处理策略的第一步就是找到一个关系代数表达式,使它与所给的表示是等价而且据估计有更小的执行代价。数据库

2、数据库系统为执行一个操做所选择的策略依赖于每一个关系的大小和列值的分布状况。数据库系统能够为每一个关系r存储统计信息,从而可以基于这些可靠消息选择合适的策略。这些统计信息包括:关系r中的元组数;关系r中的一个记录的大小;关系r中某个特定属性中出现的不一样取值的数目等。这些统计信息使得咱们能够估计各类操做的结果集的大小和执行操做的代价。当处理一个查询的过冲中有多个索引可用于辅助的时候,关系的统计信息特别有用,这些信息对查询处理策略的选择有很大的影响。学习

3、对于每一个表达式,能够用一些等价规则产生多个可选的执行计划,而后从中选择代价最小的执行计划。为了减小须要产生的可选表达式和执行计划的数量,产生了多种优化技术,好比可使用启发式的方法,来减小优化的代价。用于关系代数查询转换的启发式规则包括“及早执行选择操做”、“及早执行投影操做”、“避免笛卡尔积操做”等。 还可使用物化视图来加速查询处理。当原关系发生修改时,须要用增量的视图维护来高效地更新物化视图。利用包含一个操做的输入的变化量的代数表达式,可以完成对该操做的变化量的计算。其余与物化视图相关的问题还包括如何借助物化视图进行查询优化和如何选择须要待物化的视图。 学习资料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan优化

相关文章
相关标签/搜索