欢迎浏览我公司网站!!
公司动态
SQL优化器功能
时间: 2024-08-12浏览次数:
优化器与成本优化器是数据库最核心的功能,也是最复杂的一部分。它负责将用户提交的SQL语句根据各种判断标准,制定出最优的执行计划,并交由执行器来最终执行。优化器算法的好坏、能力的强弱,直接决定了语句的执行效率。其

优化器与成本

优化器是数据库最核心的功能,也是最复杂的一部分。它负责将用户提交的SQL语句根据各种判断标准,制定出最优的执行计划,并交由执行器来最终执行。优化器算法的好坏、能力的强弱,直接决定了语句的执行效率。其他诸如MySQL、PostgreSQL、SQLServer等关系型数据库,综合比较来说,Oracle的优化器是功能最强大的。学习SQL优化,从本质来讲就是学习从优化器的角度如何看待SQL,如何制定出更优的执行计划。当然,优化器本身是数据库系统中最为复杂的一个部分,

成本是优化器(基于成本的优化器)中反映SQL语句执行代价的一个指标。

优化器通过比较不同执行计划的成本,选择成本最小的作为最终的执行计划。

优化器

优化器在整个SQL语句的执行过程中充当了非常重要的角色。

Oracle的优化器也是在不断演变中的。在早期的版本中,Oracle使用一种基于规则的优化器。顾名思义,它是按照某种特定的规则来制定执行计划的。这种方式比较简单直观,但对数据库自身情况及SQL语句中对象本身的情况都没有考虑。在后期的Oracle版本中,又推出了另外一种优化器——基于成本的优化器。

下面将对两种主要的优化器分别加以介绍

基于规则的优化器

基于规则的优化器(Rule Based Optimizer,RBO)内部采用了一种规则列表,其中每一种规则代表一种执行路径并被赋予一个等级,不同的等级代表不同的优先级别。等级越高的规则越会被优先采用。Oracle会在代码里事先给各种类型的执行路径定一个等级,一共有15个等级,从等级1到等级15。Oracle会认为等级值低的执行路径的执行效率比等级值高的执行效率高。在决定目标SQL的执行计划时,如果可能的执行路径不止一条,则RBO就会从该SQL多种可能的执行路径中选择一条等级最低的执行路径来作为其执行计划。

基于成本的优化器

基于成本的优化器(Cost Based Optimizer,CBO)在坚持实事求是原则的基础上,通过对具有现实意义的诸多要素的分析和计算来完成最优路径的选择工作。

这里的关键点在于对成本的理解。这里简单交代一句,成本可以理解为SQL执行的代价。成本越低,SQL执行的代价越小,CBO也就认为是一个更优异的执行路径。

随着Oracle版本的不断演变,CBO优化器变得越来越智能,但需要注意的是,CBO仍然存在一些特殊情况,导致其可能产生较差的执行计划。这也是以后CBO发展,需要弥补的弱点。

2022MySQL—— 最新版安装保姆级超详细教程(附安装包)_哔哩哔哩_bilibili


Copyright © 2002-2022 盛煌-盛煌娱乐-盛煌全球注册认证站 版权所有

粤IP*******

平台注册入口