分享
 
 
 

Oracle服务器性能调整攻略

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Oracle服务器是高度可调的数据库系统,它提供了许多特性,正确地设置和调整可以有效提高系统性能,因此,对系统进行调整是数据库治理员的主要责任。

由于应用设计人员很少或根本不会给数据库治理人员提供必要的信息,因此只能采用对已有应用系统影响最小的调整方式:重新分配内存、调整磁盘I/O来提高性能。

调整内存

Oracle服务器将信息存储在两个地方:内存、磁盘。因为内存的存取比磁盘的存取快得多,为了获得最佳的性能,总是希望将数据尽可能多地放在内存供用户读取。可是系统内存资源是有限的,不可能将所有数据放在内存,因此,要在现有内存资源的基础上,通过调整内存分配来获得尽可能好的性能。调整内存的分配,实际上就是对Oracle数据库内存结构分配恰当尺寸的可用内存。

为了取得好的效果,调整要按如下顺序进行:调整操作系统、调整共享池、调整缓冲区高速缓存。由于后面调整所作的改变可能需要对前面的调整再次进行判定和调整,因此,调整的过程可能需要若干次循环。

调整操作系统

操作系统运行得好,是Oracle调整内存分配的基础,其方法如下:

减少调页或交换 过度的调页或交换必定会降低操作系统的性能。可以用操作系统提供的实用程序进行监控,如发现有过度的调页或交换,则说明系统总内存存放不下已经分配在内存中的信息。解决的办法是增加系统内存总量,或减少已经分配的内存量。

调整系统全局区(SGA) SGA是Oracle数据库存放系统信息的一块区域,由所有的服务器和客户进程共享,主要由以下四部分组成:数据高速缓冲区、字典缓冲区、重演日志缓冲区、共享SQL池。建SGA的目的是为了将数据放在内存以便快速存取,假如SGA过大内存放不下,就要被交换到磁盘,产生过度交换或调页,数据存取就快不了。在大多数系统里,过度调页的坏处比大SGA的好处对性能的影响要大得多,因此宁可SGA小些,也要保证整个SGA能被内存容下。

可利用SQL*DBA语句SHOW SGA来查看分配了多少内以及每个内部结构的大小。

该机系统内存256M,SGA大小约为115M,应用过程中不会发生调页或交换。为了提高性能,还可以在初始化参数文件INIT.ORA中添加参数 PRE_PAGE_SGA=FALSE,使得Oracle在启动Instance时将整个SGA读入内存。该设置虽然会增加Instance启动时间,但会减少Oracle在启动后达到性能峰值所用的时间。

调整共享池

调整共享池主要包括三个方面:库高速、数据字典缓存、对话信息。由于Oracle治理共享池中数据的算法,使得数据字典缓存中的数据比库高速缓存中的数据在内存中存留的时间长,因此,只要把库高速缓存调整成可以接受的命中率,就能提高数据字典缓存的命中率。

检查、调整库高速缓存 可以通过动态性能表V$LIBRARYCACHE来查询Instance启动以来所有库高速缓存的活动。

V$LIBRARYCACHE表中以下几列反映了库高速缓存在执行调用阶段的不命中:

PINS列,它的值显示在库高速缓存中执行的次数;

RELOADS列,它的值显示在执行阶段库高速缓存不命中的数目。

一般来说,库高速缓存总不命中数与总存取数之比应当接近零,本例为0.001%,说明库高速缓存命中率很高,该比率假如接近或大于1%,就应当立即采取措施来减少这种不命中。

措施一:增加初始化参数shared_pool_size的值,提高库高速缓存可用的内存数量,同时为了取得好的效果,可能还要增加初始化参数open_cursors的值,以提高对话答应的光标数。需要注重的是:为库高速缓存分配了太多的内存可能引起调页或交换。

措施二:写等价的SQL语句,尽可能让SQL语句和PL/SQL块共享一个SQL区,来减少库高速缓存的不命中。这是应用设计人员应该做到的:SQL语句或PL/SQL块的文本必须每一个字符都等价,包括大小写和空格。

检查、调整数据字典高速缓存 在应用已经运行,数据库达到了一种相对“稳定的状态”之后,可以通过动态性能表V$ROWCACHE来查询数据字典高速缓存的活动。

V$ROWCACHE表中以下几列反映了数据字典高速缓存的使用和有效性:

GETS列,它的值显示请求相应项的总数。

GETMISSES列,它的值显示造成高速缓存不命中的数据请求数。

一般来说,数据字典高速缓存总不命中数与总存取数之比应当接近零,本例为1.616%,说明数据字典高速缓存命中率比较高,该比率假如大于10%,甚至在应用过程中该比率还在增长时,就应当立即通过增加初始化参数shared_pool_size的值,来提高数据字典高速缓存可用的内存数量,从而减少这种不命中。

检查、调整对话信息占用共享池的大小 多线程服务器答应进程共享内存和连接,能支持大量用户同时访问数据库。使用多线程服务器结构时,需要将共享池分得大一些以容纳对话信息。可以通过动态性能表V$SESSTAT来查询Oracle收集对话信息使用的总内存统计。

V$SESSTAT表中session memory列,显示分配给对话的内存字节数。

max session memory列,显示分配给对话的最大内存数。

第二个结果比第一个结果大,但第一个结果能更好地估计共享内存应该多大,除非所有对话几乎在同一时间都达到最大分配。假如共享池不够,可以通过增加初始化参数shares_pool_size的值来增加。本例中共享池的大小为52428800,容纳对话信息绰绰有余。

调整缓冲区高速缓存

Oracle启动后不断收集和统计数据存取的情况,并将其存放在动态性能表V$SYSSTAT中。表中对调整缓冲区高速缓存有用的为以下几项统计:

dbblock gets 该统计值为数据请求的总数;

consistent gets 该统计值为通过对内存缓冲区存取即能满足的请求数;

physical reads 该统计值为磁盘文件存取的总数。

下面语句可以监控在一段时间内V$SYSSTAT表中的统计:

用以下公式计算缓冲区高速缓存的命中率 :命中率=1-( physical reads /(db block gets+ consistent gets))。根据以上查询出的统计数据,计算出缓冲区高速缓存的存取命中率为99.198%。

该例中,命中率很高,说明缓冲区高速缓存够用,性能良好。假如高速缓存大到足以容纳最经常存取的数据,在保持高命中率的前提下,可以通过适当减少初始化参数db_block_buffers的值来减少高速缓存的大小,从而可将省出来的内存用于其他Oracle内存结构。假如命中率低于70%的话,性能就会造成下降,就应该立即通过增加初始化参数db_block_buffers的值(它的最大值为65535),来扩大缓冲区高速缓存的大小。

重新分配内存

经过上述对Oracle内存结构分配的调整,可以再次对库高速缓存、数据字典高速缓存和缓冲区高速缓存的性能作出评估。假如有可能减少某种结构的内存消耗,就可以考虑给其他结构多分配一些内存,以得到增加可用内存的好处。但要注重,经过调整后的Oracle内存结构,假如使SGA过大而不能全部填入主存,就可能会使操作系统引起过度调页或分配,从而降低性能。

在重新分配内存的过程中,假如发现要取得Oacle最佳内存结构十分困难,就需要考虑花费资金,通过在计算机中增加更多的内存来进一步改进性能。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有