数据库SQL解析执行过程
来源:互联网 发布:mirna数据库 编辑:程序博客网 时间:2024/05/19 19:42
SQL解析执行的主要步骤:
- 对提交SQL的进行判断是否已解析和生产执行计划,对已生成执行计划的SQL直接执行返回结果
- 对SQL进行语法规范检查
- 对SQL进行语义检查,使用表、字段、函数、视图等数据库对象是否存在,以及是否拥有对应的操作权限
- 将SQL解析成语法树,按照不同的算法策略并做一些替换其中视图、表达式,合并查询等优化,去生成由关系代数算子组成的(投影 (π),选择 (σ),自然连接 (⋈),聚集运算(G)等算子)不同逻辑执行计划
- 再由数据库的优化器去把上述不同的逻辑执行计划转化为物理执行计划(Table Scan, Index Range Scan, Filter, NestLoopJoin, Hash join等组成),并且选择出其中最优的物理执行计划,在Oracle中基于CBO的优化器会结合数据字典和统计信息计算出不同的执行计划的cost,最终选择cost最小的为最优的执行计划
- 将最优的执行计划载入Share pool中,并执行返回结果
参考文章 SQL解析树:http://blog.csdn.net/qq910894904/article/details/34861173
欢迎各位批评指正文中描述错误的地方或者不足的地方,互助互勉!
0 0
- 数据库SQL解析执行过程
- sql的执行过程-解析、执行、返回
- 避免硬解析 的 SQL 执行过程
- Oracle之SQL语句执行过程解析
- sql数据库作业,定期执行存储过程
- ORACLE数据库SQL语句的执行过程
- ORACLE数据库SQL语句的执行过程
- SQL作业--让数据库定期执行一个存储过程
- ASP.NET访问Oracle数据库 执行SQL语句过程
- 数据库--sql作业,执行自动备份的存储过程
- C#中连接SQL Server数据库、执行存储过程
- 数据库_MySQL_复杂SQL的书写顺序与执行过程
- Mysql和Oracle数据库sql执行过程的区别
- TC执行过程解析
- make执行过程解析
- ORACLE执行SQL过程
- ORACLE sql执行过程
- Oracle SQL执行过程
- python 使用Boost.python 调用c++
- Linux内核-内存-伙伴系统算法
- java:多线程的使用(一)
- PAT-1001. A+B Format (20)
- JAVA获取某个类加载路径
- 数据库SQL解析执行过程
- LuceneInAction-explain()理解搜索结果评分
- mybatis反向工程生成插件使用
- PTC与Unity宣布战略合作-借助Vuforia加快增强现实开发
- 嵌套评论的数据库表设计(路径枚举)
- 超自然的箭头函数学习初步
- 122. Best Time to Buy and Sell Stock II [LeetCode]
- 深入研究Servlet线程安全性问题
- 2016年总结2017年计划