知识大全 多建车道以提高Oracle性能

Posted 文件

篇首语:既然认准一条路,就别去打听要走多久。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 多建车道以提高Oracle性能相关的知识,希望对你有一定的参考价值。

多建车道以提高Oracle性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在公路建设中 通过建立多条车道可以提高道路的流量 其实这个道理在Oracle数据库中也行得通 即可以将关键数据文件存储在多块硬盘上 以提高Oracle数据库的性能 可惜的是 不少数据库管理员没有意识到这一点 在这篇文章中笔者就以Oracle G为例 说明如何通过在硬盘之间分布关键数据文件来提高性能

  一 在硬盘之间分布关键数据文件的基本原则

  在传统的文件系统上(即不是在裸机上)部署Oracle数据库 可以通过将关键的数据文件分布到多个可用的文件系统上或者不同的硬盘上来提高数据库的性能 具体的来说 需要遵循如下几个原则

  一是对于表来说 往往包含两个部分 即基本表与索引表 只要为基本表中的字段创建了索引 其对应的就有一张索引表 当用户访问表中的数据时 应用系统需要同时访问到索引表与数据表 此时我们可以将这两张表比喻成两辆车 如果现在只有一个车道(即将他们同时存放在一个硬盘或者文件系统中) 那么两辆车必须前后行使 而如果现在有两个车道(即将基本表与其相对应的索引表存放在不同的硬盘或者文件系统中) 那么这两辆车就可以并排行使 显然 后者的效率更高 为此笔者建议 可将经常需要访问的表和与之对应的索引表分开来存放

  二是可以将日志文件也分开来存放 不光光是数据表与索引表存在着这种状况 其实在日志文件管理中也是如此 只要条件允许 那么最好能够将联机重做日志和归档日志与其它数据文件存放在不同的硬盘或者文件系统上 因为当用户往数据库中写入数据时 需要同时往数据文件与重做日志文件中写入数据 此时如果将它们分开来存放 那么就相当于有了多条车道 分别往不同的文件中写入数据 这无疑就可以提高数据写入的效率 从而提高数据库的性能

  二 哪些文件最好能够分开存放?

  在讲到硬盘之间分布关键数据文件的基本原则的时候 笔者举了几个需要分开存放的几个案例 但是在实际工作中 并不仅仅局限于上面提到的这些文件 笔者认为 如果条件允许的话 那么可以考虑将如下文件放置在不同的硬盘上

  一是表空间 如临时表空间 系统表空间 UNDO表空间等等 这三个表空间可能系统会同时进行访问 为此需要将其分开来存放 二是数据文件和索引文件 上面提到过 需要将经常访问的数据文件与其对应的索引文件存放在不同的硬盘上 因为这两类文件在访问数据时也可能会同时访问到 三是操作系统盘与数据库文件单独存放 显然Oracle系统肯定是与操作系统同时运行的 为了避免他们之间的I/Q冲突 就需要将Oracle部署在操作系统盘以外的磁盘上 四是联机重做日志文件 这个文件比较复杂 不但要将其与其他文件分开来存放 而且还需要注意的是 最好能够将其存放在性能最佳的硬盘上

  最后需要说明的一点是 增加磁盘也会增加成本 这不光光是购买磁盘所需要的花费 还包括管理的成本 所以这之间也会涉及到成本与性能之间的一个均衡问题 如果企业的数据不是很多 或者主要是涉及到查询操作 那么这么设计的话 就可能不怎么合理 因为投入要大于回报

  三 如何确定是否需要将文件分开来存放?

  在实际工作中 企业的数据是一个从少到多的过程 也就是说 刚开始使用数据库的时候 可能数据量比较少 此时出于成本的考虑 没有将相关文件存放在不同的磁盘上 但是随着工作的深入 用户会发现数据库的性能在逐渐的降低 此时管理员就需要考虑 能够采取这种多建车道的措施 来提高数据库性能 当然在采取这个措施之前 管理员需要先进性评估 此时评估所需要用到的一个指标就是磁盘的I/O争用

  磁盘争用通常发生在有多个进程试图同时访问一个物理磁盘的情况下 如现在用户需要访问某个数据表中的数据 此时系统需要访问索引文件与数据表文件 如果将它们放置在同一磁盘上 那么在访问时就会发生I/O冲突 所以评估I/O冲突的严重程度 可以帮我们来确定是否需要将关键文件存放在不同的磁盘上

  将I/O平均的分布到多个可用的磁盘上 这可以有效的减少磁盘之间的争用情况 提高数据存储与读取的性能 从而提高Oracle等应用程序的效率 在实际工作中 数据库控制文件中有两个参数可以用来帮助我们评估这个指标 这两个参数是文件平均读取时间和文件平均写入时间 不过在使用这两个参数的时候 其只评估所有与数据库相关联的文件 管理员如果有需要的话 也可以通过下面的查询语句来查询数据文件是否存在I/O问题 查询的语法与结果如下图所示

  从如上的查询结果中可以看出某个数据文件是否繁忙 数据文件之间是否存在着/I/O冲突文件 这里需要注意的是 这个结果是一个动态的结果 在不同的时刻 用户进行不同的操作时往往会得出不同的结论 为此笔者建议 在使用这个数据的时候 最好能够多跟踪几次 然后分析多次运行的结果 只有如此 才能够得到比较合乎情理的判断

  通常情况下 管理员根据上面的结果可以得出三种结论

  第一种结论是上面这些数据文件都不是很忙 即文件的平均读取时间与写入时间都比较短 表示这两个文件都是比较空闲的 此时正常情况下 数据库的性能应该是不错的 也就是说 如果此时数据库的性能不理想的话 那么就不是磁盘的I/O所造成的 管理员应该从其他角度来改善数据库的性能

  第二种结论是每个数据库文件都非常的繁忙 此时有可能是读取时间或者写入时间比较长 或者说两个时间都比较长 当多个数据文件同时比较繁忙并且他们处于同一磁盘的话 那么管理员就需要考虑购买新的磁盘 然后将上面提到的这些关键文件重新整理 让他们部署在不同的磁盘上

  第三种结论是某几个特定的数据文件比较繁忙 而其他数据文件还可以 此时管理员如果成本受到限制 那么也不需要重新购买硬盘 在磁盘上的物理写入和读取次数上如果出现比较大的差异 就表明某个磁盘负载过大 即有很严重的I/O冲突 此时最好能够将这个磁盘中的文件进行调整 如将某些文件移动到另外的一块I/O相对不怎么严重的磁盘上 不过在采取这个操作的时候 需要注意一点 对于联机重做日志文件来说 即使其所在的磁盘I/O冲突比较低 或者访问这个文件的时间比较短 但是也不建议将其他数据文件转移到其所在的磁盘上来 因为通常情况下 为了保障数据库的性能 我们都建议将联机重做日志文件单独存放 并且还需要讲起放置在性能比较高的硬盘上

cha138/Article/program/Oracle/201311/18561

相关参考

知识大全 用智能优化限制来提高Oracle性能

用智能优化限制来提高Oracle性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 使用智能优化器提高Oracle的性能极限

使用智能优化器提高Oracle的性能极限  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  消耗在准

知识大全 优化数据库大幅度提高Oracle的性能

优化数据库大幅度提高Oracle的性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  几个简单的

知识大全 优化数据库的三板斧 大幅提高Oracle性能

优化数据库的三板斧大幅提高Oracle性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  几个简

知识大全 Oracle8 PL/SQL编程风格与系统性能的提高

Oracle8PL/SQL编程风格与系统性能的提高  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 oracle压缩表/表空间

  从OracleiR开始ORACLE提供了表/表空间压缩技术以减少磁盘开销节省空间并在某些情况下提高查询性能  表压缩是如何工作的在Orclei第版中表压缩特性通过删除在数据库表中发现的重复数据值来

知识大全 甲骨文助陕西重型汽车驶入信息化快车道

  持续几年业绩低迷之后全球最大的CRM领导厂商Siebel终于还是未能走出颓局成为收购大鳄Oracle的囊中物    大洋彼岸的这场收购令国内软件CRM厂商打了一阵寒颤:技术绝对领先的Siebel都

知识大全 香港的土地只利用了24%,为什么不多建房子给人住

香港的土地只利用了24%,为什么不多建房子给人住因为有很多土地是公园还有未开发的山林,香港要开发是需要经过环境评估的香港人住的房子为什么这么小香港是属于比较发达的城市了,人口密集,土地自然就不够用啦,

知识大全 合理选择盘区的管理方式提高数据库的性能

  在Oracle数据库中表空间是由段组成的而段又是由盘区所组成的通常情况下在大型数据库中合理选择盘区的管理方式能够在很大程度上提高数据库的性能并减轻数据库管理员的工作量笔者对此事深有感触    一盘

知识大全 ORACLE性能初步调整

性能调优:ORACLE性能初步调整  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在UserSc