WEB开发网
开发学院数据库Oracle 关于提高Oracle数据库性能的四个误区 阅读

关于提高Oracle数据库性能的四个误区

 2007-05-12 12:24:25 来源:WEB开发网   
核心提示: 分区的规划是复杂的,拿我们产品应用来说,一般查询涉及到多个表,多个索引,假设我们把病人费用记录,药品收发记录,病人医嘱记录这类大表建立分区,显然,范围分区对我们提升性能用处不大,散列分区才是我们查询需求的,但大多数数据的散列又不够集中,关于提高Oracle数据库性能的四个误区(4),再加上

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

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

4、并行处理

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

上一页  1 2 3 4 

Tags:关于 提高 Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接