读ZLABB 的sql tuning 的笔记

 sql tuning的基本常识:

不论SQL中读取多少个表,在执行过程中,每次都是两个表/
    果集操作,得到新的结果后,再和下一个表/结果集操作,,,
    直到结束。
   
在一个多表关联的执行计划中,必须包括这3要素:
*   /对象/数据集的读取顺序( join order )。
*   数据的读取方法( access path )。
*   /数据的关联方法(join method)。
     3个要素是判断执行计划优秀与否的关键。
*   可选择性(Selectivity) >=0  and <=1
*   预估记录数(Cardinality) ,表/视图/操作后的结果集。
*   开销(Cost) CBO选择最佳执行计划的标准:越低越好。

filter是指根据某个条件来过滤数据。
而access根据某个条件或者关系来访问数据。 (这个我平时还真没有注意)
关联条件和过滤条件都是约束条件。

10046事件为何有时没有执行计划?

       这是因为该语句在执行后,该语句的游标没有关闭,导致没写入执行
计划,可以在执行完该语句后,执行一简单语句,如:select *  from dual;  
促使之前的游标结束,即可得到执行计划信息。

请使用浏览器的分享功能分享到微信等