数据库开发小知识普及七--如何读懂SQL执行计划
1.SQL执行计划是什么?
一个SQL语句,例如:select * from t1,t2 where t1.id=t2.id and id=6;这样的语句,开发人员实际上只关心能否通过访问t1、t2两个表得到两个表相关联的数据,他们并没有指定该SQL如何执行,是先访问t1表再访问t2表呢,还是先访问t2表再访问t1表呢?
对SQL来说,这两种访问方式就是两个不同的执行计划,而且必须选择一种访问路径。到底选择哪一种呢?答案很简单,那种执行开销更低,就意味着性能更好,速度更快,Oracle就选择哪一种。这种过程就叫作SQL的解析过程,一般都在1s内即可完成。然后数据库把这个更好的执行计划保存下来放到SGA的shared pool里,后续如果再执行同样的SQL只需要直接在shared pool里去获取就可以了,不需要再去分析了。
这就是SQL的执行计划。