1,从用户给出的查询请求开始,直到得到查询结果,这一过程称为查询处理。对于一个给定的查询,通常会有许多种可能的执行策略,查询优化就是从众多策略中找出高效执行策略的处理过程查询处理和优化是DBMS实现的关键技术,对系统性能有很大影响。

2,查询处理的步骤:    

     ①将查询转换成某种内部表示,通常是语法树。

     ②根据一定的等价变换规则把语法树转换成标准(优化)形式。

     ③选择低层的操作算法。对于语法树中的每一个操作需要根据存取路径、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。

     ④生成查询计划。查询计划也称查询执行方案,由一系列内部操作组成。这些内部操作按一定的次序构成查询的一个执行方案。通常这样的执行方案有多个,需要对每个执行计划计算代价,从中选择代价最小的一个 。

数据库的查询优化

数据库的查询优化

3,查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化”做得更好, 这是因为:

1)优化器可以从数据字典中获取许多统计信息;2)如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的;3)优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握,系统的自动优化相当于使得所有人都拥有这些优化技术

4,查询优化的路径:

1)对查询语句进行等价变换(如改变基本操作的顺序)使查询执行起来更加有效。这种优化只涉及查询语句本身,而不涉及存取路径,故称为独立于存取路径的优化,或代数优化
2)根据系统提供的查询路径,选择合理的存取策略(例如是选择顺序扫描还是选择索引),这称为依赖于存取路径的优化,或称物理优化
3)有些查询可根据启发式规则选择执行策略,这称为规则优化
4)根据可供选择的执行策略进行代价估算,并从中选择代价最小的执行策略,这称为代价估算优化
5)此外,还可以通过应用数据库的语义信息对查询进行优化,这称为语义优化

5,  代数优化

       代数优化使用等价变换规则来优化关系代数表达式,使优化后的表达式满足原来的查询。

       代数优化的基本原则:          

     代数优化的基本原则是尽量减小查询处理的中间结果大小  投影、选择等一元操作对关系进行水平或垂直分割,减小了关系的大小 而并、连接等二元操作对两个关系按条件组合,操作费时且结果集比较大;在变换查询时,尽量先安排执行投影、选择,后进行连接、笛卡儿积。

数据库的查询优化

6,物理优化    

    根据系统所提供的存取路径,选择合理的存取策略(例如选用顺序搜索或索引进行查询)称为物理优化;物理优化又称为依赖于存取路径的优化,而代数优化则属于不依赖于存取路径的优化。

  •   选择操作优化

        选择操作是从关系中选择满足给定条件的元组,从水平方向减小关系的大小,查询优化中的一条基本原则就是选择尽量先做。   

       选择操作的实现方法包括:

          1)顺序扫描:适用于“小”的关系,满足条件的元组比例较大或无其他存取路径。

          2)  利用各种存取路径:包括索引(B+树),动态散列

数据库的查询优化

数据库的查询优化

  • 连接操作优化

      连接是从两个关系的笛卡儿积中选择满足连接条件的元组,操作本身开销大,并且可能产生大的中间结果。

      连接操作的实现方法包括:          

1)嵌套循环法(nested loop)(把元组少的作为外连接)
2)利用索引或散列寻找匹配元组法(可以减少IO次数)
3)排序归并(sort-merge)法(首先按连接属性对关系排序,然后进行归并连接)
4)散列连接法(hash join)   

数据库的查询优化

        

                                                                                                               

相关文章:

  • 2021-12-31
  • 2021-09-01
  • 2021-05-15
  • 2021-12-18
  • 2021-11-18
  • 2021-11-20
  • 2021-12-23
  • 2021-05-31
猜你喜欢
  • 2022-01-02
  • 2021-09-20
  • 2021-07-04
  • 2021-10-15
  • 2021-05-30
  • 2021-11-20
  • 2021-12-18
相关资源
相似解决方案