ITPub博客

首页 > 数据库 > Oracle > 【优化】使用绑定变量 OR 不使用绑定变量,这不是问题!

【优化】使用绑定变量 OR 不使用绑定变量,这不是问题!

原创 Oracle 作者:OCMU联盟 时间:2011-01-09 22:55:10 0 删除 编辑
就目前现状来看,大家有点过分强调绑定变量的作用了。
任何一种优化方法都尤其适用场景,绑定变量技术也不例外。不可盲目的将其信奉为影响性能的罪魁祸首。

1.分清系统是OLTP还是OLAP类型很重要
通常来说,我们把业务分为两类,在线事务处理系统(OLTP)和在线分析系统(OLAP)或者决策支持系统(DSS)。这两类系统在数据库设计上截然不同。比如OLTP系统强调数据库的内存效率,强调内存各种指标的命中率,强调绑定变量,强调并发操作;而OLAP系统则强调数据分析,强调SQL执行时间,强调磁盘I/O,强调分区等。

2.OLTP类型的系统适合大量使用绑定变量技术
OLTP系统是一个数据块变化非常频繁,SQL语句提交非常频繁的系统。对于数据块来说,应尽可能让数据块保存在内存当中,对于SQL来说,尽可能使用绑定变量技术来达到SQL重用,减少物理I/O和重复的SQL解析,从而极大的改善数据库的性能。

3.OLAP系统中使用绑定变量是徒劳的
在OLAP系统中,不需要使用绑定变量(Bind),因为系统中SQL数量和执行频率都很低,SQL语句的分析时间较之执行时间来说可以忽略不计。但是OLAP中可以大量使用位图索引,物化视图,对于大的事务,尽量寻求速度上的优化,没有必要像OLTP那样要求快速提交,甚至要刻意减慢执行的速度。绑定变量真正的用途是在OLTP系统中,这个系统通常有这样的特点,用户并发数很大,用户的请求十分密集,并且这些请求的SQL 大多数是可以重复使用的。

4.小结
以上从理论层面解析了绑定变量的适用场景。希望给大家在日常优化过程中有些指导。请大家避免盲目调优带来的窘境。

Good luck.

secooler
11.01.09

-- The End --

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

请登录后发表评论 登录
全部评论
OCM联盟( Oracle Certified Master Union)是由侯圣文(ACE总监)发起的一个公益组织,旨在为每一个OCM大师提供一个可以继续展示自己才华,技术和实力的平台。

注册时间:2007-05-27

  • 博文量
    799
  • 访问量
    8406997