Oracle性能调整的误区(二)

 
   | |

导读:本文主要介绍了RAC的好处及其带来的性能影响,因为它要全局协调数据高速缓存,保证每个实例上连接的用户看到的缓存数据是一致的;分区以及并行处理。

关键词:Oracle Oracle性能 Oracle性能调整 RAC 并行处理

正在加载数据...

  RAC还有一个好处是,提高了可用性,也就是说一台服务器坏掉了(注意:不是数据存储介质),不影响正常使用。就像负载均衡一样,它提高了数据层以上的可用性,但不是全部,因为数据坏了,它也没有办法。(数据层,那是Oracle Data Guard的事了,或者干脆说那是存储硬件的事)

  但是,RAC带来好处的同时,也带来了性能的影响。因为它要全局协调数据高速缓存,保证每个实例上连接的用户看到的缓存数据是一致的,所以把以下三方面的矛盾放大:

  1.高速缓存争用2.过多的I/O 3.锁定

  也就是说,如果这些方面有问题,用了RAC后问题就会更大,例如:由于SQL没有使用绑定变量导致高速缓存争用,用了RAC会更严重。

  总之,如果你的服务器的CPU插满了,内存也加到极限了,而并发用户还在不断增长,或者你对故障停机时间要求非常高,RAC无疑是你应该选择的。

  3.分区

  Oracle的分区用途在于把大的表或索引分成小的片段,以便更容易管理。我们以前可能错误的认为分区就是fast=true,可以提高速度,也在肿瘤和儿科做过这方面的试验。实际上,在事务处理系统中,分区一般不能加快查询速度(某些情况下可能会减少对共享资源的争用)。Oracle的分区特性,主要是针对数据仓库来设计的,也就是说你的某张表如果有100G的大小,最好使用分区,好处有以下三个方面:

  1.提高可用性

  分区的原理就是分而治之,如果一张表划分为多个分区,其中一个分区所在的介质出了问题,不影响整个表的其它分区数据的访问。

  2.易于管理

  在数据仓库下,表分成小的片断,更容易批量的删除,碎片整理,以及一些并行处理。

  3.提高性能

  这方面,通过分区来达到是最困难的,必须经过周密的计算来安排分区数据。

  分区的规划是复杂的,拿我们产品应用来说,一般查询涉及到多个表,多个索引,假设我们把病人费用记录,药品收发记录,病人医嘱记录这类大表建立分区。显然,范围分区对我们提升性能用处不大,散列分区才是我们查询需求的,但大多数数据的散列又不够集中。再加上,这些表上的索引这么多,常用的ID,时间类索引就不少,很少有人能做到把它们全部进行全局分区或准确的进行范围分区(实际上可能根本无法按需求进行多个索引的范围分区)。如果查询经常涉及多个索引,如何保证用到的每个索引都在一个分区上,如果不是,必然扫描多个分区,增加逻辑I/O和CPU时间,从而增加查询时间。(数据分布在不同物理存储介质的情况,在下面的并行处理中再讨论)

  再来看一下,某些情况下可能会减少对共享资源的争用是指什么,是指并行修改和更新会更快。仔细分析,我们分区的原则是什么?一般最常用的可能是按时间段进行范围分区,这样,修改和更新绝大多数还是在同一个分区上进行,所以对减少共享资源的争用这方面,基本没有什么效果。(有按科室ID进行散列分区的对应的唯一应用需求吗?有基于列表分区(典型特征值)的对应的唯一应用需求吗?基本上没有。)分区主要从并行的角度来提高性能,但事务处理系统本身应用特性决定了它不适合这种技术。也就是说,针对我们产品的事务处理应用特点,根本没有必要采用分区技术。

  4.并行处理

  根据我们的应用特点,主要分析并行查询。一般要求配合分区特性,多CPU硬件。自Oracle 8.1.6起,增加了一个自动调节并行查询的选项:PARALLEL_AUTOMATIC_TUNING=TRUE在相应的表上设置PARALLEL参数,Oracle就会在适当的时候自动并行化该表上的操作。并行查询对事务处理系统基本上没有用。因为并行查询的设计是针对数据仓库中的单用户完全消耗100的资源而做的。而事务处理中,往往有很多并发用户,他们争用共用资源,所以你想办法让一个用户占用所有的资源是适得其反。


Oracle性能调整的误区
 Oracle性能调整的误区(一)
 Oracle性能调整的误区(二)

原文出处:http://develop.csai.cn/dbms/200810281417311748.htm
 
来源:中国IT实验室    
 
 
 
 
 

Oracle性能与调优

 
在关系型数据库理论中,在任何表中对行列的顺序并没有严格的概念。一个表就是一个数据集,而数据集是没有顺序而言的。
 
在进行Oracle升级过程中,创建测试用例来验证升级并没有对数据或者读取这个数据库的应用造成不良的影响是至关重要的。
 
去年年底当Oracle公司宣布他们的虚拟管理软件Oracle VM时,该公司承诺Oracle应用程序能顺利地被虚拟化,而同时Oracle公司对公众声称它不支持虚拟化系统,不能在……

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录