Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1844073
  • 博文数量: 323
  • 博客积分: 5970
  • 博客等级: 大校
  • 技术积分: 2764
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-03 23:13
文章分类

全部博文(323)

文章存档

2018年(2)

2017年(11)

2016年(10)

2015年(27)

2014年(2)

2013年(30)

2012年(197)

2011年(44)

分类: Oracle

2012-12-23 16:29:29

简述”parse calls”
By Jonathan Lewis, Translated By Jametong



关于统计信息”parse calls”的涵义,市面上流传着大量的含糊的说法.记住下面这一点很重要,这个统计项仅仅统计OCI库一种特定类型的调用(Call),一次parse call需要的工作量随着情境的不同可能会产生相差很大,有时它所做的工作量非常小,从而可以不用担心.

一次”parse calls”可能:

a) 不得不优化这条SQL语句,因为它无法在库缓存(Library Cache)中找到匹配项.

b) 在库缓存中找到了对应的语句,但是仍然由于各种原因需要对其进行优化,例如:之前的执行计划已经被刷出内存,或者由于不同的用户在调用,同样的SQL文本应用到了不同的对象.
(a),(b)是我们一般意义上理解的hasd parse

c) 在库缓存中找到了对应的SQL语句,并且不需要对其进行优化,因为它的执行计划仍然存在,并且用户也有相应的权限.
这一条是我们一般意义上理解的soft parse

d) 当通过session cursor cache或pl/sql cursor cache操作时,可以直接找到语句在库缓存中的位置,从而完全不需要搜索库缓存.
这一条是我们一般理解的soft soft parse (最初应该来自于Asktom的叙述)

当Oracle增加”parse calls”的计数器时,你仍然需要搞清楚这次调用到底对应于(a),(b),(c),(d)中的哪一类调用.
或许只是为了混淆问题,Oracle也可能仅仅记录一次”parse count(hard)”而不记录”parse call”.
阅读(2476) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~