数据库SQL解析执行过程

SQL解析执行的主要步骤:

  1. 对提交SQL的进行判断是否已解析和生产执行计划,对已生成执行计划的SQL直接执行返回结果
  2. 对SQL进行语法规范检查
  3. 对SQL进行语义检查,使用表、字段、函数、视图等数据库对象是否存在,以及是否拥有对应的操作权限
  4. 将SQL解析成语法树,按照不同的算法策略并做一些替换其中视图、表达式,合并查询等优化,去生成由关系代数算子组成的(投影 (π),选择 (σ),自然连接 (⋈),聚集运算(G)等算子)不同逻辑执行计划
  5. 再由数据库的优化器去把上述不同的逻辑执行计划转化为物理执行计划(Table Scan, Index Range Scan, Filter, NestLoopJoin, Hash join等组成),并且选择出其中最优的物理执行计划,在Oracle中基于CBO的优化器会结合数据字典和统计信息计算出不同的执行计划的cost,最终选择cost最小的为最优的执行计划
  6. 将最优的执行计划载入Share pool中,并执行返回结果


参考文章 SQL解析树:http://blog.csdn.net/qq910894904/article/details/34861173

欢迎各位批评指正文中描述错误的地方或者不足的地方,互助互勉!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值