SQL语句是如何解析的

上传人:平*** 文档编号:13743151 上传时间:2017-10-25 格式:DOCX 页数:2 大小:68.31KB
返回 下载 相关 举报
SQL语句是如何解析的_第1页
第1页 / 共2页
SQL语句是如何解析的_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《SQL语句是如何解析的》由会员分享,可在线阅读,更多相关《SQL语句是如何解析的(2页珍藏版)》请在金锄头文库上搜索。

1、SQL 语句是如何解析的SQL 语句的解析,早就听说是软解析和硬解析,下面我们分析下整个解析的过程:1、整个解析的过程从包含 VPD 的谓词开始。如果该 SQL 中含有应用了 VPD(Virtual Private Database)的表,则将会首先在 SQL 语句的 where 中附加上 VPD 安全策略的谓词。2、语法、语义检查和权限控制。语法检查,对 sql 语句关键字的正确性进行检查,语义检查主要判断该 SQL 中是否引用了不存在的对象或者是否违反了相关约束条件;权限控制主要是判断当前操作是否具备相应的操作权限。3、从共享区中获取一个 Parent Cursor,如果未获取到,则在共享

2、区中分配内存,定义一个新的 Parent Cursor。这个 Parent Cursor 结构的关键信息就是这个 SQL 语句本身。4、逻辑优化,这个过程应用各种不同的算法和策略对 SQL 语句进行转换,生成很多等价的 SQL。5、物理优化,首先将上个步骤中各 SQL 语句生成各自的执行计划,然后应用系统数据字典中的分析统计信息或者通过动态采样获取的统计信息为每个执行计划计算出一个 Cost,然后选择最小 Cost 的执行计划。6、在共享区中存储一个 Child Cursor,这个 Child Cursor 和上面 Parent Cursor 是关联的,Child Cursor 中主要存储执行

3、计划和运行环境信息。通过上面,可以看到,在共享区中有一个 Parent Cursor 和 Child Cursor 来保存一个 SQL语句的信息,通过查询 v$sqlarea,v$sql,v$sqltext 等视图,我们可以获取 sql 和 cursor 的相关信息。对于上面的各个过程,我们看到,Parent Cursor 和 Child Cursor 是在共享区的,也就是说其可以被共享,嘿嘿,这就是为什么有软解析和硬解析了。软解析:如果 Parent Cursor 和 Child Cursor 在共享区中已经存在,则只需要前两个步骤就行了。这个就是软解析。硬解析:如果 Parent Cursor 和 Child Cursor 不能共享,则需要完整的过程,这个就是硬解析了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号