服务器

位置:IT落伍者 >> 服务器 >> 浏览文章

如何调整Oracle数据库服务器的性能


发布日期:2020年01月20日
 
如何调整Oracle数据库服务器的性能

Oracle数据库服务器是整个系统的核心它的性能高低直接影响整个系统的性能为了调整Oracle数据库服务器的性能主要从以下几个方面考虑

调整操作系统以适合Oracle数据库服务器运行 Oracle数据库服务器很大程度上依赖于运行服务器的操作系统如果操作系统不能提供最好性能那么无论如何调整Oracle数据库服务器也无法发挥其应有的性能

为Oracle数据库服务器规划系统资源

据已有计算机可用资源 规划分配给Oracle服务器资源原则是尽可能使Oracle服务器使用资源最大化特别在Client/Server中尽量让服务器上所有资源都来运行Oracle服务

调整计算机系统中的内存配置

多数操作系统都用虚存来模拟计算机上更大的内存它实际上是硬盘上的一定的磁盘空间当实际的内存空间不能满足应用软件的要求时操作系统就将用这部分的磁盘空间对内存中的信息进行页面替换这将引起大量的磁盘I/O操作使整个服务器的性能下降为了避免过多地使用虚存应加大计算机的内存

为Oracle数据库服务器设置操作系统进程优先级

不要在操作系统中调整Oracle进程的优先级因为在Oracle数据库系统中所有的后台和前台数据库服务器进程执行的是同等重要的工作需要同等的优先级所以在安装时让所有的数据库服务器进程都使用缺省的优先级运行

调整内存分配

Oracle数据库服务器保留个基本的内存高速缓存分别对应种不同类型的数据库高速缓存字典高速缓存和缓沖区高速缓存库高速缓存和字典高速缓存一起构成共享池共享池再加上缓沖区高速缓存便构成了系统全程区(SGA)SGA是对数据库数据进行快速访问的一个系统全程区若SGA本身需要频繁地进行释放分配则不能达到快速访问数据的目的因此应把SGA放在主存中不要放在虚拟内存中内存的调整主要是指调整组成SGA的内存结构的大小来提高系统性能由于Oracle数据库服务器的内存结构需求与应用密切相关所以内存结构的调整应在磁盘I/O调整之前进行

库缓沖区的调整

库缓沖区中包含私用和共享SQL和PL/SQL区通过比较库缓沖区的命中率决定它的大小要调整库缓沖区必须首先了解该库缓沖区的活动情况库缓沖区的活动统计信息保留在动态性能表v$librarycache数据字典中可通过查询该表来了解其活动情况以决定如何调整Select sum(pins)sum(reloads) from v$librarycache; Pins列给出SQL语句PL/SQL块及被访问对象定义的总次数Reloads列给出SQL 和PL/SQL块的隐式分析或对象定义重装载时在库程序缓沖区中发生的错误如果sum(pins)/sum(reloads) ≈则库缓沖区的命中率合适若sum(pins)/sum(reloads)> 则需调整初始化参数 shared_pool_size来重新调整分配给共享池的内存量

数据字典缓沖区的调整

数据字典缓沖区包含了有关数据库的结构用户实体信息数据字典的命中率对系统性能影响极大数据字典缓沖区的使用情况记录在动态性能表v$librarycache中可通过查询该表来了解其活动情况以决定如何调整Select sum(gets)sum(getmisses) from v$rowcache; Gets列是对相应项请求次数的统计Getmisses 列是引起缓沖区出错的数据的请求次数对于频繁访问的数据字典缓沖区sum(getmisses)/sum(gets)<%~%若大于此百分数则应考虑增加数据字典缓沖区的容量即需调整初始化参数shared_pool_size来重新调整分配给共享池的内存量

缓沖区高速缓存的调整

用户进程所存取的所有数据都是经过缓沖区高速缓存来存取所以该部分的命中率对性能至关重要缓沖区高速缓存的使用情况记录在动态性能表v$sysstat中可通过查询该表来了解其活动情况以决定如何调整

Select namevalue from v$sysstat

where name in (dbblock getsconsistent getsphysical reads);

dbblock gets和consistent gets的值是请求数据缓沖区中读的总次数physical reads的值是请求数据时引起从盘中读文件的次数从缓沖区高速缓存中读的可能性的高低称为缓沖区的命中率计算公式

Hit Ratio=(physical reds/(dbblock gets+consistent gets))如果Hit Ratio<%~%则应增大db_block_buffers的参数值db_block_buffers可以调整分配给缓沖区高速缓存的内存量即db_block_buffers可设置分配缓沖区高速缓存的数据块的个数缓沖区高速缓存的总字节数=db_block_buffers的值*db_block_size的值 db_block_size 的值表示数据块大小的字节数可查询 v$parameter 表select namevalue from v$parameter where name=db_block_size; 在修改了上述数据库的初始化参数以后必须先关闭数据库在重新启动数据库后才能使新的设置起作用

调整磁盘 I/O

磁盘的I/O速度对整个系统性能有重要影响解决好磁盘I/O问题可显着提高性能影响磁盘I/O的性能的主要原因有磁盘竞争I/O次数过多和数据块空间的分配管理

为Oracle数据库服务器创建新文件时不论是表空间所用的数据文件还是数据事务登录所用的日志文件都应仔细考虑数据库服务器上的可用磁盘资源如果服务器上有多个磁盘则可将文件分散存储到各个可用磁盘上减少对数据库的数据文件及事务日志文件的竞争从而有效地改善服务器的性能对于不同的应用系统都有各自的数据集应当创见不同的表空间分别存储各自应用系统的数据并且尽可能的把表空间对应的数据文件存放在不同的磁盘上这种从物理上把每个应用系统的表空间分散存放的方法可以排除两个应用系统竞争磁盘的可能性数据文件事务日志文件分别存放在不同的磁盘上这样事务处理执行的磁盘访问不妨碍对相应的事物日志登记的磁盘访问如果有多个磁盘可用将两个事物日志成员放在不同的磁盘驱动器上就可以消除日志文件可能产生的磁盘竞争应把一个应用的表数据和索引数据分散存放不同表空间上并且尽量把不同类型的表空间存放在不同磁盘上这样就消除了表数据和索引数据的磁盘竞争

调整数据库服务器的回滚段

回滚段是一个存储区域数据库使用该存储区域存放曾经由一个事务更新或删除的行的原始数据值如果用户要回滚一个事务所做的改变那么数据库就从回滚段中读回改变前的数据并使该事务影响的行改变为它们的原状态回滚段控制着数据库处理事务的能力因而在数据库成功中起着关键性的作用不管数据库的其它部分设计得多好如果它设计得不合理将会严重影响系统的性能建立和调整回滚段的原则如下

分离回滚段

分离回滚段是指单独为回滚段创建一个以上的表空间使回滚段与数据字典用户数据索引等分离开来由于回滚段的写入与数据和索引的写入是并行进行的因此将它分离出来可以减少I/O争用如果回滚段与数据不分离倘若要某个表空间脱机或撤消那么在该表空间中的各个回滚段没有全部脱机之前不能将这个表空间脱机或撤消而一旦该表空间不可用则该表空间中的所有回滚段也不能使用这将浪费所有分配的磁盘空间所以独立回滚段可使数据库管理变得容易回滚段的经常性收缩使得表空间的自由块更容易形成碎片分离回滚段可以减少数据库表空间的碎片产生

创建不同大小的回滚段群

对于一些联机事物处理他们一般是频繁地对少量数据进行修改创建许多小的回滚段对之有利每一个事物的入口项只能限于一个回滚段回滚段应该充分大以容纳一个完整的事物处理因此对一些较大型事物需要较大型的回滚段极个别脱机处理事物会产生大量的回滚信息这时需要一个特大号的回滚段来处理根据这些理论在Oracle数据库服务器中针对上述种事物处理创建三组小事物组较大事物组特大事物组等大小不同的回滚段群并且将之分散到个不同的表空间上群内大小相同应能满足该组事物处理的最大要求

上一篇:vsftpd-1.1.3配制实例之一:INTERNET

下一篇:用Java实现FTP服务器解决方案