zoukankan      html  css  js  c++  java
  • oracle数据库性能优化 降低IO

       影响到oracle性能的因素主要可以从硬件和软件两个方面划分,本文通过对oracle数据库架构的分析,
    提出从硬件方面OLTP系统优化oracle数据库性能的方法,不足之处欢迎拍砖。
      oracle数据库物理存储架构:
      oracle数据库物理文件增长情况:
       Oracle archived REDO log files增长快,说明redo log写入很频繁。
    从实际大数据量和高性能OLTP应用系统性能测试发现,磁阵IO是限制系统性能的瓶颈,因此降低IO是oracle数据库优化的关键,
    结合oracle数据库物理存储架构图、数据库物理文件增长情况和实际测试发现,给磁阵IO带来很大负荷的是redo log文件、数据文件、索引文件的读写三个方面,
    并且当数据量、性能和持续压力时间都达到一定的量时,这三者产生的IO负荷相当,因此降低磁盘IO的最终目标也就是降低这三类文件的IO,
    通过将oracle的redo log文件、数据文件、索引文件都建立到内存盘上的实际测试结果表明,采用这种几乎零IO的模式很大程度的提高了oracle的性能,
    基于以上分析,可以对oracle数据库的IO做以下优化:
    1 固态硬盘存储redo log,提高redo log的写入速度,
      从实际运用的角度看,由于内存盘的易失性,把redo log文件建立在内存盘上是不安全的,再考察redo log文件具有大小稳定,一般在2到3个G之间的特性,因此把redo log文件建立在固态硬盘上是个不错的选择
    2 由于内存足够大,因此将临时表空间建立在内存盘上,对于统计、大数据量查询、大数据量sql运算(比如:group by、sum等)的操作,
      需要大量临时表空间存储临时数据,这些临时数据就直接存储到内存上了,消除了oracle的大读取和大运算产生的临时IO
    3 由于索引具有可以根据数据文件重建,不怕丢失的特性,
      把索引文件建在临时文件系统上,oracle每次启动时重建索引,这样平时的读写操作就不会产生索引IO,索引的更新和读取都在内存上进行,
      系统由于各种原因出现重启时,仅在重启时重建一次索引
    本文观点基于目前系统内存都非常大(一般都是几十G甚至以上)的情况下所做的优化,
    基于以上优化,把影响oracle IO的三大因素去掉了两大因素,因此性能上有望达到倍增的效果。
    实验环境:
    由于本文所需测试均是从内存盘使用方面的优化性测试,因此有一台内存较大cpu稍微好一点的机器就足以做相关测试了。
    遗留问题:
     1 每次重启数据库时重建oracle索引的代价是多少,应用能否接受?
     2 redo log文件是否还有别的更加快速的存取办法?更快的方法安全性怎么样?
    名词解释:
    内存盘    :参见百度百科的解释“linux tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统。”
                我没有查到关于unix操作系统的临时文件系统的说明,但是unix系统通常都支持内存盘(ramdisk),可以用来代替tmpfs。
                http://baike.baidu.com/view/753453.htm          
                http://baike.baidu.com/view/1511292.htm
    固态硬盘  :固态硬盘(Solid State Disk、IDE FLASH DISK)用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片)组成。
                http://baike.baidu.com/view/723957.htm
                http://www.pcpop.com/doc/0/683/683347_all.shtml
    传统硬盘  :硬盘(港台称之为硬碟,英文名:Hard Disc Drive 简称HDD 全名 温彻斯特式硬盘)是电脑主要的存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成。这些碟片外覆盖有铁磁性材料。
                http://baike.baidu.com/view/4480.htm
    redo log  :redo/undo log文件,重做/撤销日志,Oracle archived REDO log files是对red/undo log的备份
                http://baike.baidu.com/view/3084737.htm
    data files:数据文件,每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据
                http://baike.baidu.com/view/702978.htm
  • 相关阅读:
    祝大家光棍节快乐!
    [Spring] Oracle TopLink O/R Mapping integrates Spring.
    VS2005 vs Eclipse, functions i expected.
    [English] Adverb for link (Chinese)
    有几个Gmail的Invitation
    Experience online service of MS small business (bCentral)
    多态(Polymorphism)
    Check your site and build meta tags for search engines
    关于怎样用javascript判断网页上我们想要必须选择的复选框至少选择一个的问题
    关于在VS2010中学习c++的MFC
  • 原文地址:https://www.cnblogs.com/youyou/p/2500727.html
Copyright © 2011-2022 走看看