ITPub博客

首页 > 数据库 > Oracle > SQL处理的主要步骤

SQL处理的主要步骤

原创 Oracle 作者:we6100 时间:2015-11-10 17:29:11 0 删除 编辑
    SQL语句在处理中要经过几个步骤,分别是分析、绑定和执行。Oracle使用游标(专用SQL区)来存储分析过的语句以及与当前处理的语句有关的其他信息。
Oracle自动为所有SQL语句打开一个游标。

    分析
    在分析步骤中,Oracle要做以下几件事情来检查SQL语句:
1.Oracle检查语句在语法上是否正确。服务器查看数据字典,看表和列的说明是否正确;
2.Oracle确认你是否有权限执行试图通过SQL语句执行的活动
3.Oracle制定语句的执行计划,它包括选择访问语句中对象的最好方法。
    在检查了权限后,为了标示语句,Oracle分配给SQL语句一个数----SQL散列值。如果SQL散列值(HASH)已存在内存中,Oracle将查找语句现存的执行计划,此执行计划详细描述访问各种数据库对象的最佳方法。
如果执行计划存在,Oracle将直接跳到使用该执行计划的实际执行语句。这称为软解析,是语句处理的首选技术。因为使用已有的执行计划,所以软解析很快且很有效。
    相对于软解析的是硬解析。如果在内存中找不到语句的SQL散列值,则Oracle必须进行硬解析,硬解析很耗费系统内存和其他资源。Oracle必须建立一个新的执行计划,这意味着它必须估计大量可能性,并从中选出
最好的计划。在这种处理中,为检查数据字典,Oracle需要多次访问库高速缓存和字典高速缓存,而且每次访问这些共同使用的区,Oracle都需要使用闩(低级别的串行控制机制)保护SGA中的共享数据结构。因此
硬解析会增加闩的争用。
    任何时候,只要语句处理中存在严重的资源争用,执行时间就会增加。请注意,硬解析太多将会导致共享池破碎,使争用恶化。
    在解析操作完成后,Oracle为语句分配一个共享SQL区,只要此解析过的语句在该内存中,任何用户都可以访问它。

    绑定
    在绑定步骤中,Oracle检索分析步骤所使用的变量值。请注意,仅在分析步骤完成后,变量才扩展为文字值。

    执行
    Oracle完成分析和绑定之后,就开始执行语句。注意, Oracle将首先检查语句的分析表示在内存中是否存在。如果存在,则用户可以直接执行此分析过的语句,用不着再经过分析处理。
    数据库从磁盘读数据到内存缓冲区(如果在内存之中未发现数据)是在执行阶段进行的。数据库还自动进行必需的锁定,保证记录在SQL语句执行中所作的更改,在SQL执行后,Oracle将自动关闭游标。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27500440/viewspace-1827277/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-23

  • 博文量
    72
  • 访问量
    268097