ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 硬分析 软分析

硬分析 软分析

原创 Linux操作系统 作者:m_cat 时间:2010-07-14 12:34:38 0 删除 编辑

摘抄: 

SQL语句的执行过程分几个步骤:语法检查、分析、执行、返回结果。其中分析又分为硬分析(Hard Parse)和软分析(Soft Parse)。说到绑定变量就不得不提到ORACLE的硬分析和软分析。

    硬分析:硬分析主要是检查该sql所涉及到的所有对象是否有效以及权限等关系,然后根据RBO或CBO模式生成执行计划,然后才执行SQL语句。   

    软分析:一条SQL语句通过语法检查后,Oracle 会先去shared pool 中找是否有相同的sql,如果找着了,就叫软分析,然后执行SQL语句。

    共享池中SQL语句数量太多,重用性极低,加速了SQL语句的老化,导致共享池碎片过多。共享池中不同的SQL语句数量巨大,根据LRU原则,一些语句逐渐老化,最终被清理出共享池;这样就导致shared_pool_size 里面命中率下降,共享池碎片增多,可用内存空间足。而为了维护共享池内部结构,需要使用latch(叫闩 shuan:一声),一种内部生命周期很短的lock,这将使用大量的cpu 资源,使得性能急剧下降。不使用绑定变量违背了oracle 的shared pool 的设计的原则,违背了这个设计用来共享的思想。

 

 

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

上一篇: 没有了~
下一篇: TKPROF 学习 1
请登录后发表评论 登录
全部评论

注册时间:2010-07-13

  • 博文量
    3
  • 访问量
    2770