SQL语法执行过程

SQL语法执行过程:

1、synatic:语法分析,检查 SQL 语法是否错误,有没有拼写错误。

2、Semantic:语义分析,检查要查询的对象是否存在,以及用户是否有对应对象的操作权限。

3、Parent cursor:在 library cache 中检查语句中的 cursor 是否存在,如果存在可重用的 cursor ,则可以把 PGA 中的 private SQL Area 和其关联,然后跳至第八步,此过程叫做软解析;如果不存在则申请一个 parent cursor parent cursor 就是用来保存 SQL 语句的,然后进行第四布

4、View Merge:如果用户的语句中用到了视图,则把视图语句合并到用户语句中;

5、Statement transformation:把复杂的 SQL 转换成简单的 SQL 语句,比如展开子查询等;

4 5 又可以叫做 logical optimization

6、Optimization:确定最佳的访问路径,选择最小代价的访问方式; physical optimization

7、QEP generation:(生成执行计划), QEP query Execution Plan ,也就是产生 child cursor 执行计划会保存在 child cursor 中,并和 parent cursor 相关联;

8、QEP Execution:执行语句,生成结果。

猜你喜欢

转载自zhuyuehua.iteye.com/blog/1666237