所谓执行计划就是句子的执行路径,或则说是程序的执行方法。就是对一个任务,作出一份如何去完成任务的详尽方案。举个事例,从上海到南京,可以有好多种选择,可以坐上海到北京的复兴号,也可以先到上海,再从上海转至上海,也可以先到南京,再转至上海。并且究竟如何去才划算,我们要考虑成本(cost),成本越低越实惠。同样对于查询而言,我们递交的SQL仅仅是描述出了我们的目的,但至于如何去执行,一般我们的SQL中是没有给出提示信息的,是由数据库来决定的。有一些自身测度去判定最终的句子执行计划.
2.执行计划的获取
执行计划的获取可以分为以下三种形式
1.SQL形式
2.形式
3.数据库顾客端工具
下边对三种形式进行演示.
2.1.SQL方法获取执行计划2.1.1.生成执行计划
执行以下句子:
此句子可以生成句子的执行计划,还不会展示,展示执行可以执行以下句子(要与前面的句子在同一个联接中执行)
前面的是执行句子,下边是展示的结果.红示方框中的cost就是我们要考虑的成本.
2.2.方法获取执行计划
打开
执行句子set(此句子执行完成不会有任何提示),之后再执行你要查看执行计划的句子.
可以看见句子不但生成的执行计划,还生成了一些统计信息。
里面用到了set句子,这个句子的完整用法如下.
SETAUTOT[RACE]{OFF|ON|TRACE[ONLY]}[EXP[LAIN]][STAT[]]
示例:
2.3.顾客端工具
每位顾客端工具显示执行计划的形式都不相同,下边用最常用的plsql作为演示:
打开PLSQL顾客端,联接数据库,执行前面的几个操作,就是打开了一个执行计划窗口.
在这个窗口里可以执行你要查看的句子。
里面介绍了三种获取执行计划的形式,从执行计划里可以看见一个检测方法:INDEXRANGESCAN,除此之外还有FULLTABLESCANS,INDEXSCAN,INDEXFULLSCAN,INDEXFASTFULLSCAN,在表联接的情况下还有一些联接形式,SortMergeJoin,Loops,HashJoin,之后会逐渐的对那些进行逐一的介绍,欢迎关注.