什么是SQL执行计划
SQL执行计划指的是查看一条SQL语句在数据库中实际执行的时候,一步步清手的分别都做了什么,具体数据库查看执行计划的操作步骤如下:
1、首先,打开一个的sql server的数据库管理界面当中。
2、然后选中的要执行的sql语句。
3、点击了的菜单中的查询的菜单。
4、点击了查询菜单之后,弹出了下拉菜单选中答燃嫌为显示估计的执行计划的选项。
5、然后点击执行计划。
6、段消可以看到是相关的执行计划的相关的数据。
SQL执行计划,就是一条SQL语句,在数据库中实际执行的时候,一步步的分别都做了什么。
执行计划是由各类操作符组成的一颗树,也就是排序好的操作符的展现形式枣兄,从内到外依次没乱执行
一般的执行计划格式为
OP1
OP2
OP3
OP4
OP5
OP6
OP7
OP8
缩进越多的越先执行,同凳察袭样缩进的上面的先执行,下面的后执行,上下的优先级高于内外
OP3->OP4->OP2->OP7->OP8->OP6->OPT5->OP1
扩展资料
同一个SQL在共享池中有多个不同的执行计划被称为版本(VERSION)。即使是使用了良好的绑定变量,但仍然有可能会出现多个不同的执行计划,即VERSION_COUNT比较大。
这个字段也表示有多少个child cursors在一个parent下面。
由于配置参数、执行环境(用户)等不同,即使一个相同的sql语句,在执行的过程中,会出现各种各样的执行计划。每个执行计划的执行,也就产生了一个child cursor。version_count就表示这个意义。
可以通过以下方法来确定是否真的具有那么多的version_count:
ALTER SESSION SET EVENTS 'immediate trace name LIBRARY_CACHE level 4';
来dump出内存来确信改sql是否具有那么多的version,也可以通过查询v$sql (可以通过hash_value跟v$sqlarea联合)来看child_number的个数
一个执行计划右若干基本操作组成. 例如, 遍历整张表, 利用索引, 执行一个嵌套循环或Hash连接等等. 我们将在这一系列的文章里详细讨论. 所有的基本数巧操作都有一个输出: 结果集. 有些, 象嵌套循环, 有一个输入. 其他的, 象Hash连接, 有两个输入. 每个输入应与其它基本操作的的输出想连接. 这也就是为什么一个执行可以被看做是一个数的原因: 信败并息从树叶流向树根. 在文章的下面部分有很多诸如此类的例子.
负责处理或计算最优的执行计划的DB Server组件叫优化器. 优化器是建立在其所在的DB资源的基础上而进行工作的.
说白了就是数据库服务器在执行sql语句之前会制定几套执行计划!看那个机会消耗的系统资源少,就是用那套计划!