Oracle性能调整的误区(一)

2008-12-2    来源:中国IT实验室    我要评论
   | |

导读:针对提高Oracle数据库性能作者对一些方法或方案进行了不少尝试,主要包括共享服务器模式、集群技术RAC、分区以及并行处理。本文主要介绍共享服务器和集群技术。

关键词:Oracle Oracle性能 Oracle性能调整

正在加载数据...

  为了提高性能,我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试,主要包括:

  • 共享服务器模式(MTS)
  • 集群技术(Clustering)RAC
  • 分区
  • 并行处理(主要是并行查询)

  Oracle提供的这些特性确实是用来进行性能改善的,但我们往往忽略了对自身应用特性的分析,它们是否适合于我们。最近,通过对这方面知识的深入了解,发现我们以前存在一些错误的认识。我觉得有必要,大家一起来改变这种误解。

  分析之前,先明确一下我们的应用特性。数据库应用大体可以分为OLAP和OLTP两大类,即:联机事务分析(数据仓库)和联机事务处理(事务应用)我们的应用系统,其应用特性主要是联机事务处理,又包含了少量的数据仓库特性。

  1.共享服务器(MTS)

  Oracle缺省用的是专用服务器模式,也就是说一个用户连接进程对应一个服务器的进程。记得某大医院刚启用的时候,我们曾经试过MTS.因为听说MTS在不增加内存和CPU的情况下连接更多的客户端,结果并不是我们预期的那样。MTS有问题吗?不是,是因为我们对MTS不了解,并不是它有问题,而是它不是用来在这种情况下做这件事的。

  一般情况,只有当并发连接数超过了操作系统的支持时,才建议使用MTS,否则应该使用缺省的专用服务器模式。也就是说,在专用服务器模式下,因为多一个连接就要多消耗一个操作系统的进程,只有当并发应用需求超过操作系统的允许连接数时,才有必要考虑MTS.如果现有系统,物理上支持100个连接的专用服务器数据库,改为使用共享服务器模式,也许支持1000个连接,但同时活动的连接可能只有100个。一般2到4个CPU的服务器,应对200到400个并发连接是足够的,如果连接增加了,可以增加CPU和内存。

  MTS具有以下一些缺点:

  1.共享服务器的代码路径比专用服务器长,所以它天生就比专用服务器慢。

  2.存在人为死锁的可能,因为它是串行的,所有共享服务器绑定在一起(一个进程),只要一个连接阻塞,则所有用户阻塞,并且极可能死锁。

  3.存在独占事务的可能,因为如果一个会话的事务运行时间过长,它独占共享资源,其它用户只能等待。(而专用服务器,每个客户端是一个会话)

  4.共享服务器模式限制了某些数据库特性,例如:不能单独启动和关闭实例,不能进行介质恢复,不能使用Log Miner,不能使用,并且SQL_TRACE没有意义(因为是共享而不是当前会话的)。

  MTS减少的内存实际上是专用服务器模式下每个用户连接到操作系统进程所需的内存,但它却使用SGA的Large_Pool来分配UGA,拆东墙补西墙,所减少的内存是很少的。如果用户会话的连接和断开很频繁,数据库进程的创建和删除的开销会非常大,这种情况最好采用共享服务器模式(否则,应该使用连接池技术)。所幸的是,我们产品的设计可能就考虑了这个因素,使用的是一次连接终身使用(会话生命周期内),避免了这种情况。

  所以,综上所述,针对我们产品,建议采用缺省的专用服务器模式,连接不够时,通过增加硬件解决,而不是改用MTS.另外,实际上,Oracle可以同时支持共享服务器和专用服务器模式,可以指定一个会话使用专用服务器,另一个会话使用共享服务器。

  2.集群技术(RAC)

  Oracle RAC(Real Application Clusters),我们说的双机容错就是RAC的一种。 集群技术的优势在在于横向扩展性能,并提供高可用性。32位的操作系统有4G内存的限制,有些Unix系统(以及非高级版本的Windows)有CPU个数的限制。而集群技术通过集合多台机器协同工作,横向打破了这种限制。通过RAC,一台服务器一个实例,多台机器构成一个实例服务集,客户端连接到它上面。这项技术,我们有时对客户说是负载均衡,实际上这是片面的,RAC的主要针对的是CPU和内存的负载均衡,并没有实现磁盘IO的负载均衡。(当然,磁盘IO可以通过Raid或NAS来实现)。


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

原文出处:http://oracle.chinaitlab.com/optimize/767247.html
 
 
 
 
 
 

Oracle性能与调优

 
Oracle数据库在执行SHUTDOWN IMMEDIATE命令之后进行回顾,它回滚的内容究竟是什么?专家将为您详细解答。
 
数据库调优最有效的工具之一是索引。如果你为表中的一列建索引,可以高达一万倍之快的提高表中数据的访问速度。
 
AWR可以在用户和系统级别上获取与数据库工作负载相关的性能数据,其中包括不同空间的性能静态数据、OS静态数据以及动态会话记录(ASH)数据等。
 
进行该测试的存储过程主要DML操作就是UPDATE,需要根据某个条件对数据表的某个字段进行更新,其中使用到游标。
 
在关系型数据库理论中,在任何表中对行列的顺序并没有严格的概念。一个表就是一个数据集,而数据集是没有顺序而言的。

热门技术手册排行

 

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

 

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

 

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

 

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

 

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

查看更多
 
 

登录TechTarget中国

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