oracle 父游标详 解,关于oracle hard parsing的一点个人见解

最近一客户反映他们的ORACLE系统运行速度变慢了,顾客就是上帝,二话没说我就跑到现场,一翻检查下来没有发现系统有什么大的问题,告警文件没有任何错误提示.随后运行statspack进行状态分析,报告显示数据库的hard

parsing比较大,后来想想导致hard pasing无非以下几个方面的原因:

1.系统运行时间不长,或刚重启,或者执行了alter system flush shared

pool刷了共享池.由于系统运行时间较长所以此项排除.

2.shared pool太小,检查报告发现使用率己达95%以上,所以考虑增加shared pool.

3.绑定变量,hard parsing过高和绑定变量也有密切的关系,通过top 5

sql找出相关的语句,对应用程度进行调整,绑定了相关变量.这样可以大大减少hard parsing

通过以上2,3两步后系统己恢复正常.

注释:绑定变量

通过一个例子大家就可以理解绑定变量在减少hard parsing方面的作用了

SELECT fname, lname, pcode

FROM cust WHERE id =

674;

SELECT fname, lname, pcode FROM cust WHERE id = 234;

SELECT fname, lname, pcode FROM cust WHERE id = 332;

如果没绑定变量,则系统会分别解析这三条语句,而绑定变量后只需解析一次即可,

SELECT fname, lname, pcode FROM cust WHERE id =

:cust_no;

到此我想您应该对绑定变量有了详细一的理解了吧..

另外,执行SQL语句时,会首先将SQL文本转化为ASCii码,然后用hash函数运算,将结果与librarycahce中的值进行比较,没命中时就进行硬解析,命中则进行软解析.

hard

parsing步骤:

1.SQL语法检查

2.SQL所涉对象检查

3.对象名称转换

4.权限检查

5.执行计划

6.将SQL文本,执行计划装进heap中

SQL语句及其他信息在shared

pool中被看作是游标,分为父游标与子游标,父游标存放SQL文本与优化目标,子游标存储执行计划和绑定变量.父游标可以创建多个子游标.创建新的子游标时会对执行计划进行分析.占用很多的系统资源.

Mirc

2009-06-20

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值