Oracle 性能调优

  一.数据库优化的方向

  1.程序设计(这点最重要,如果程序本身设计有问题,再怎么进行下面的优化都是徒劳的。)

  2.操作系统优化

  3.硬件优化

  4.数据库优化

  5.SQL语句优化

  二.硬件优化

  这里涉及到的硬件主要有:硬盘,内存。

  1.硬盘的读写速度:建议增加硬盘的数量,从而增加每秒的并发操作。

  2.内存大小。

 三.数据库优化

  

  以上是Oracle 9i的体系结构,关于Oracle数据库的优化,很大程度上图有关。

 1.根据数据库的使用方式得出合理的优化策略

(1)OLTP:连机事务处理。

          需要实时处理大量请求,而每次处请求的数据量都是很小的。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。

         性能好坏的重要指标:响应时间与请求处理并发数。

(2)OLAP:联机分析处理。

         可以简单地理解为在海量数据中得出统计/综合信息,是数据仓库的主要应用。做OLAP应用的数据库,数据量通常量非常大。和OLTP不同,OLAP应用的并发处理量是很低的,所以基本不用考虑并发问题。而在处理数据量方面,OLAP每次操作所需要处理的数据量通常都是非常大的,这点也和OLTP相反。

         性能好坏的重要指标:查询大量数据的速度。

         由于OLTP和OLAP是两个不同应用方向,所以在优化数据库时应采取不同的优化策略。

  2.内存分配比例:2:1:1

       内存分配的较佳方案:SGA占50%的物理内存,PGA和操作系统各占25%的物理内存,当然这也不是绝对的,但是SGA占的物理内存不能超过75%,最多只能占70%,否则Oracle可能会出现各种的异常。

  3.SGA中各个POOL的内存分配

(1)Shared Pool:要分配多少内存不定,只要满足以下两个条件即可:

          -Lib Cache的命中率>98%

          -Data Dictionary Cache的命中率>85%

(2)Large Pool

           -专用服务器:100-200M

          -共享服务器:Session * (Sort_area_size + 2)

(3)Java Pool:无需使用,一般不分配空间。

(4)Redo Log Buffer Cache:小于5M,因为它的信息非常重要,应尽快把缓存数据写到文件中。

(5)DB_Buffer_Cache:尽量大。

  4.在Oracle 10g中,如果我们定义了SGA_MAX_SIZE后,其实我们通过SGA_TARGET让Oracle自动调整SGA的内存分配。

     原则:SGA+PGA+OS使用内存<总物理RAM 公式化: OS 使用内存+SGA+并发执行进程数
           *(sort_area_size+hash_ara_size+2M) < 0.7*总内存 
     参考值: 
          现场服务器是8G内存,SGA设置为4G,PGA设置为1G 现场服务器是16G内存,SGA设置为10G,PGA设置为2G 现场服务器是32G内存,SGA设置为20G,PGA设置为4G 

  5.Redo log files,Data files,Archive log files尽量放在不同的磁盘上,以均衡I/O。特别是Redo Log files和Archive log files。

  6.Undo Segment容量大小要符合实际应用,不能太小。

  7.热点文件特殊处理

(1)分开存放Index Segment和Data Segment。

(2)使用分区表。

  8.索引(Index)问题

(1)适当使用BTREE,BITMAP以及反向索引:不同索引适用于不同的表,设置索引之前要考虑这个问题。

(2)一个表的索引数最多不要超过5个,否则可能影响性能。

(3)定期重构索引。(单边树索引重构时可考虑使用反向索引降低索引树高度)

(4)注意索引是否失效,这一般是比较烂的SQL语句引起的问题。

  9.尽量减少“全表扫描操作” & “排序操作”

  10.看执行计划有助于各位DBA找出性能问题。

  四.SQL语句优化

  1.通过v$librarycache了解命中率,这和3.1中提到的Shared Pool有关系,避免重复解析SQL语句,有助于提高数据库性能。

  2.使用“物化视图”提高查询性能。

  转载:http://www.cnblogs.com/hyddd/archive/2009/08/30/1556939.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值