![Oracle数据库常见的瓶颈问题与性能监测工具_第1页](http://file4.renrendoc.com/view/6cb7dc01ba6a6cf070fdbc14fd49ad67/6cb7dc01ba6a6cf070fdbc14fd49ad671.gif)
![Oracle数据库常见的瓶颈问题与性能监测工具_第2页](http://file4.renrendoc.com/view/6cb7dc01ba6a6cf070fdbc14fd49ad67/6cb7dc01ba6a6cf070fdbc14fd49ad672.gif)
![Oracle数据库常见的瓶颈问题与性能监测工具_第3页](http://file4.renrendoc.com/view/6cb7dc01ba6a6cf070fdbc14fd49ad67/6cb7dc01ba6a6cf070fdbc14fd49ad673.gif)
![Oracle数据库常见的瓶颈问题与性能监测工具_第4页](http://file4.renrendoc.com/view/6cb7dc01ba6a6cf070fdbc14fd49ad67/6cb7dc01ba6a6cf070fdbc14fd49ad674.gif)
![Oracle数据库常见的瓶颈问题与性能监测工具_第5页](http://file4.renrendoc.com/view/6cb7dc01ba6a6cf070fdbc14fd49ad67/6cb7dc01ba6a6cf070fdbc14fd49ad675.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内容摘要:数据库系统的性能最终了决定数据库的可用性和生命力。大多数数据库系统在运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件、数据库服务器、数据库内存、应用程序、操作系统、数据库参数等方面。因此,基于数据库系统的性能调整与优化对于整个系统的正常运行起着至关重要的作用。数据库性能调整与优化涉及到多个层面,通过统一规划、系统分析做出相应的调整,可以提高数据库的稳定性和可用性,保障系统高效地运行,解决系统瓶颈,节约系统开销,具有良好的应用价值,同时也对理论研究提供了一定的方法指导。基于此,论文将Oracle 10g数据库的内存分配、磁盘I/O以及SQL语句等方面的性能调整与优化问题作为主要
2、研究内容,对其进行了深入地分析和讨论,给出了一般情况下Oracle数据库应用系统的性能调整策略及优化方法。关键词:OOraccle 10gg 数据库库;体系系结构;系统全全局区;性能调调整与优优化 AbsttracctAbstrractt: The perrforrmannce of dattabaase sysstemms eevenntuaallyy deeterrminnes theeir avaailaabillityy annd ssurvvivaabillityy. MMostt off thhem willl bbrinng aabouut ssomee peerfoormaan
3、cee prrobllemss moore or lesss aafteer rrunnningg foor aa peeriood oof ttimee, wwhicch mmainnly invvolvve ddataabasse hharddwarre, dattabaase serrverr, ddataabasse mmemoory, apppliicattionns, opeerattingg syysteems andd daatabbasee paarammeteers, etcc. TTherrefoore,perrforrmannce tunningg annd oopti
4、imizzatiion of dattabaase sysstemms,whiich conncerrn mmulttiplle aaspeectss, arre vveryy viitall too thhe nnormmal runnninng oof tthe whoole sysstemm. WWe ccan impprovve tthe staabillityy annd aavaiilabbiliity of dattabaase, guuaraanteee iits higgh rrunnningg effficcienncy, soolvee syysteem bbotttle
5、nneckk, reeducce ssysttem oveerheead, obbtaiin cconssideerabble apppliccabiilitty aand in theem mmeannwhiile, prroviide somme gguiddeliiness foor ttheooretticaal rreseearcch tthrooughh a uniifieed pplann annd ssysttemaaticcal anaalyssis to makke aapprroprriatte aadjuustmmentt.Basedd onn thhe aabovve
6、-mmenttionned ideea, thee paaperr prrinccipaallyy paays atttenttionn too thhe rreseearcch oon tthe perrforrmannce tunningg annd ooptiimizzatiion proobleems of memmoryy allloccatiion of Oraaclee 10gg, ddiscc I/O, SQLL sttateemennts, ettc, andd maakess a furrtheer aanallysiis aand disscusss. Bessidees
7、, it prooviddes somme pperfformmancce ttuniing strrateegiees aand opttimiizattionn appprooachhes of Oraaclee apppliicattionn syysteem iin ggeneerall coondiitioon. Key WWordds: Orraclle 10gg Dattabaase不不Archhiteectuure不不Systtem Globbal Areaa不 Adjuustmmentt annd OOptiimizzatiion of Perfformmancce1 导言言
8、网格技术是是本世纪纪初最新新和最有有吸引力力的技术术之一,数数据库管管理系统统作为信信息系统统的基本本支撑在在信息化化建设中中扮演着着重要的的要色。目目前的OOraccle 10gg数据库库是业界界首个为为网格计计算而设设计的数数据库,是是一种高高效率、可靠性性好的适适应高吞吞吐量的的数据库库解决方方案,该该方案可可让客户户将多台台标准服服务器系系统整合合成一套套可扩充充的容错错运算平平台。然然而,随着数数据库规规模的扩扩大及用用户数量量的增加加,数据据库应用用系统的的响应速速度下降降,性能能问题越越来越突突出。Oraclle 10gg数据库库系统体体系结构构庞大、技技术细节节繁杂,如如何合理
9、理有效地地建立基基于Orraclle的数数据库系系统及如如何调整整使系统统性能达达到最优优,成为为Oraaclee数据库库应用领领域的热热点问题题。本课课题通过过对Orraclle 10gg数据库库系统的的深入分分析,设设计一套套完整的的Oraaclee数据性性能评测测指标和和方法,并并针对发发现的性性能问题题制定相相应的性性能优化化策略。 2 Orraclle 10gg体系结结构Oraclle数据据管理系系统是OOraccle实实例(IInsttancce)和Oraaclee数据库库构成的的。下面面是Orraclle 10gg数据库库的体系系结构图图:图1 OOraccle 10gg数据库库
10、体系结结构2.1 ORAACLEE实例Oraclle 实例包包括系统统全局共共享区SSysttem Glooball Arre 和后台台进程BBackkgrooundd Prroceess。2.1.11 系统全全局共享享区Syysteem GGlobbal Areea(SGAA)Systeem GGlobbal Areea 是是一块巨巨大的共共享内存存区域,他他被看做做是Orraclle 数数据库的的一个大大缓冲池池,这里里的数据据可以被被ORAACLEE的各个个进程共共用11。其其大小可可以通过过如下语语句查看看:SQL sellectt * froom vv$sgga;NAME VALLU
11、E- -Fixxed Sizze 3398116Varriabble Sizze 225988127784Dattabaase Buffferrs 11.0449E+09Redo Buffferrs 33276680主要包括以以下几个个部分:2.1.11.1 共享享池(Shaaredd poool)共享池是SSGA中中最关键键的内存存片段,特特别是在在性能和和可伸缩缩性上。一一个太小小的共享享池会扼扼杀性能能,使系系统停止止,太大大的共享享池也会会有同样样的效果果,将会会消耗大大量的CCPU来来管理这这个共享享池。不不正确的的使用共共享池只只会带来来灾难。共共享池主主要又可可以分为为以下两两个
12、部分分:(1)SQQL语句句缓冲(Libbrarry CCachhe)当一个用户户提交一一个SQQL语句句,Orraclle会将将这句SSQL进进行分析析(paarsee),这这个过程程类似于于编译,会会耗费相相对较多多的时间间。在分分析完这这个SQQL,OOraccle会会把他的的分析结结果给保保存在SSharred poool的LLibrraryy Caachee中,当当数据库库第二次次执行该该SQLL时,OOraccle自自动跳过过这个分分析过程程,从而而减少了了系统运运行的时时间。这这也是为为什么第第一次运运行的SSQL 比第二二次运行行的SQQL要慢慢一点的的原因。下面举例说说明pa
13、arsee的时间间SQL sellectt coountt(*) frromsscpaass ;COUNTT(*)-243Elapssed: 000:000:000.088这是在Shharee_poool 和Daata buffferr 都没没有数据据缓冲区区的情况况下所用用的时间间SQL altter sysstemm fllushh SHHAREED_PPOOLL;Systeem aalteeredd.清空Shaare_poool,保保留Daata buffferrSQL sellectt coountt(*) frrom scppasss ;COUNTT(*)-243Elapssed:
14、000:000:000.022SQL sellectt coountt(*) frrom scppasss ;COUNTT(*)-243Elapssed: 000:000:000.000从两句SQQL 的的时间差差上可以以看出该该SQLL 的PParsse 时时间约为为00:00:00.02。对于保存在在共享池池中的SSQL语语句,可可以从VV$Sqqlteext、vv$Sqqlarrea中中查询到到,对于于编程者者来说,要要尽量提提高语句句的重用用率,减减少语句句的分析析时间。一一个设计计的差的的应用程程序可以以毁掉整整个数据据库的SSharre ppooll,提高高SQLL语句的的重用率率
15、必须先先养成良良好的变变成习惯惯,尽量量使用BBindd变量。(2)数据据字典缓缓冲区(Datta DDicttionnaryy Caachee)显而易见,数数据字典典缓冲区区是ORRACLLE特地地为数据据字典准准备的一一块缓冲冲池,供供ORAACLEE内部使使用。 2.1.11.2 块缓缓冲区高高速缓存存(Dattabaase Buffferr Caachee)这些缓冲是是对应所所有数据据文件中中的一些些被使用用到的数数据块。让让他们能能够在内内存中进进行操作作。在这这个级别别里没有有系统文文件,户数据据文件,临临时数据据文件,回回滚段文文件之分分。也就就是任何何文件的的数据块块都有可可能
16、被缓缓冲。数数据库的的任何修修改都在在该缓冲冲里完成成,并由由DBWWR进程程将修改改后的数数据写入入磁盘2。这个缓冲区区的块基基本上在在两个不不同的列列表中管管理。一一个是块块的“脏脏”表(Dirrty Lisst),需需要用数数据库块块的书写写器(DDBWRR)来写写入,另另外一个个是不脏脏的块的的列表(Freee LListt),一一般的情情况下,是是使用最最近最少少使用 (Leeastt Reecenntlyy Ussed,LRUU)算法法来管理理。块缓缓冲区高高速缓存存又可以以细分为为以下三三个部分分(Deefauult poool,KKeepp poool,Reccyclle pp
17、ooll)。如如果不是是人为设设置初始始化参数数(Innit.oraa),OORACCLE将将默认为为Deffaullt ppooll。由于于操作系系统寻址址能力的的限制,不不通过特特殊设置置,在332位的的系统上上,块缓缓冲区高高速缓存存最大可可以达到到1.77G,在在64位位系统上上,块缓缓冲区高高速缓存存最大可可以达到到10GG。2.1.11.3 重做做日志缓缓冲区(Reddo llog buffferr)重做日志文文件的缓缓冲区,对对数据库库的任何何修改都都按顺序序被记录录在该缓缓冲,然然后由LLGWRR进程将将它写入入磁盘。这这些修改改信息可可能是DDML语语句,如如(Innserr
18、t,UUpdaate,Delletee),或或DDLL语句,如如(Crreatte,AAlteer,DDropp等)。 重做日日志缓冲冲区的存存在是因因为内存存到内存存的操作作比较内内存到硬硬盘的速速度快很很多,所所以重作作日志缓缓冲区可可以加快快数据库库的操作作速度,但但是考虑虑的数据据库的一一致性与与可恢复复性,数数据在重重做日志志缓冲区区中的滞滞留时间间不会很很长。所所以重作作日志缓缓冲区一一般都很很小,大大于3MM之后的的重作日日志缓冲冲区已经经没有太太大的实实际意义义。2.1.11.4 Jaava程程序缓冲冲区(Javva PPooll)Java 的程序序区,OOraccle 8I
19、以后,Oracle 在内核中加入了对Java的支持。该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小。2.1.11.5 大池池(Larrge Poool)大池的得名名不是因因为大,而而是因为为它用来来分配大大块的内内存,处处理比共共享池更更大的内内存,下下面对象象使用大大池:MTS在SGGA的LLargge PPooll中分配配UGAA。语句的并行行查询(Parralllel Exeecuttionn off Sttateemennts)允允许进程程间消息息缓冲区区的分配配,用来来协调并并行查询询服务器器。备份(Baackuup)用于于RMAAN磁盘盘
20、I/OO缓存。2.1.22 后台台进程(Bacckgrrounnd pproccesss)后台进程是是Oraaclee的程序序,用来来管理数数据库的的读写,恢恢复和监监视等工工作。SServver Proocesss主要要是通过过他和uuserr prroceess进进行联系系和沟通通,并由由他和uuserr prroceess进进行数据据的交换换。在UUnixx机器上上,Orraclle后台台进程相相对于操操作系统统进程,也也就是说说,一个个Oraaclee后台进进程将启启动一个个操作系系统进程程;在WWinddowss机器上上, OOraccle后后台进程程相对于于操作系系统线程程,打开开
21、任务管管理器,我我们只能能看到一一个ORRACLLE.EEXE的的进程,但但是通过过另外的的工具,就就可以看看到包含含在这里里进程中中的线程程。在Unixx上可以以通过如如下方法法查看后后台进程程:ps eef | grrep oraa_# ps -eff | greep oora_ | greep XXCLUUATOraclle 2294331 11 0 Sepp 0222:02 oraa_dbbwr_SIDDOraclle 2294444 11 0 Sepp 0220:03 oraa_ckkpt_SIDDOraclle 2294448 11 0 Sepp 0222:42 oraa_smmo
22、n_SIDDOraclle 2294442 11 0 Sepp 0223:25 oraa_lggwr_SIDDOraclle 2294227 11 0 Sepp 0220:01 oraa_pmmon_SIDD2.1.22.1 Orraclle系统统有5个基本本进程他他们是:DBWR(数据文文件写入入进程)LGWRR(日志文文件写入入进程)SMONN(系统监监护进程程)PMONN(用户进进程监护护进程)CKPTT(检查点点进程,同步数数据文件件,日志文文件,控制文文件)(1)DBBWR(Dattabaase Wriiterr 数据据写入进进程)将数据缓冲冲区的数数据写入入数据文文件,是是负责数数
23、据缓冲冲区管理理的一个个后台进进程。当当数据缓缓冲区中中的一数数据被修修改后,就就标记为为dirrty,DDBWRR进程将将数据缓缓冲区中中“脏”数据写写入数据据文件,保保持数据据缓冲区区的“干净”。由于数数据缓冲冲区的数数据被用用户修改改并占用用,空闲闲数据缓缓冲区会会不断减减少,当当用户进进程要从从磁盘读读取数据据块到数数据缓冲冲区却无无法找到到足够的的空闲数数据缓冲冲区时,DDBWRR将数据据缓冲区区内容写写入磁盘盘,使用用户进程程总可以以得到足足够的空空闲数据据缓冲区区。DBBWR的的作用:管理数据据缓冲区区,以便便用户进进程总能能够找到到足够的的空闲缓缓冲区。将所有修修改后的的缓冲区
24、区数据写写入数据据文件。使用LRRU(最最近最少少使用)算算法保持持缓冲区区数据是是最近经经常使用用的。通过延迟迟写来优优化磁盘盘I/OO读写。(2)LGGWR(Logg Wrriteer 日志写写入进程程)将日志数据据从日志志缓冲区区写入磁磁盘日志志文件组组。数据据库在运运行时,如如果对数数据库进进行修改改则产生生日志信信息,日日志信息息首先产产生于日日志缓冲冲区。当当日志达达到一定定数量时时,由LLGWRR将日志志数据写写入到日日志文件件组,再再经过日日志切换换, 由归归档进程程(ARRCH)将将日志数数据写入入归档进进程(前前提是数数据库运运行在归归档模式式下)。数数据库遵遵循写日日志优
25、先先原则,即即在写数数据之前前先写日日志。(3)SMMON工作主要包包含:清除临时空空间在系统启动动时,完完成系统统实例恢恢复聚结空闲空空间从不可用的的文件中中恢复事事务的活活动OPS中失失败节点点的实例例恢复清除OBJJ$表缩减回滚段段使回滚段脱脱机(4)PMMON主要用于清清除失效效的用户户进程,释释放用户户进程所所用的资资源。如如PMOON将回回滚未提提交的工工作,释释放锁,释释放分配配给失败败进程的的SGAA资源。(5)CKKPT同步数据文文件,日日志文件件和控制制文件,由由于DBBWR/LGWWR的工工作原理理,造成成了数据据文件,日日志文件件,控制制文件的的不一至至,这就就需要CC
26、KPTT进程来来同步。CCKPTT会更新新数据文文件/控控制文件件的头信信息。CKPT工工作的主主要条件件如下:a.在日志志切换的的时候。b.数据库库用Immeediaate ,Trannsacctioon , Normmal 选项SShuttdowwn 数数据库的的时候。c.根据初初始化文文件LOOG_CCHECCKPOOINTT_INNTERRVALL、LOGG_CHHECKKPOIINT_TIMMEOUUT、FFASTT_STTARTT_IOO_TAARGEET、的设置置数值来来确定。d.用户触触发。2.1.22.2 以下下进程的的启动需需要手工工配置(1)ARRCH当数据库以以归档方方
27、式运行行的时候候,Orraclle会启启动ARRCH进进程,当当重做日日志文件件被写满满时,日日志文件件进行切切换,旧旧的重做做日志文文件就被被ARCCH进程程复制到到一个/多个特特定的目目录/远远程机器器。这些些被复制制的重做做日志文文件被叫叫做归档档日志文文件。(2)REECO负责解决分分布事物物中的故故障。OOraccle可可以连接接远程的的多个数数据库,当当由于网网络问题题,有些些事物处处于悬而而未决的的状态。RRECOO进程试试图建立立与远程程服务器器的通信信,当故故障消除除后,RRECOO进程自自动解决决所有悬悬而未决决的会话话。(3)服务务进程SServver Proocesss
28、服务进程的的分类:专用服务进进程(Deddicaatedd Seerveer PProccesss)一个服务进进程对应应一个用用户进程程共享服务进进程(MulltiTTreaadedd Seerveer PProccesss)一个服务进进程对应应多个用用户进程程,轮流流为用户户进程服服务。PGAA & UGAAPGA = Prroceess Glooball ArreaUGA = Usser Glooball Arrea他保存了用用户的变变量、权权限、堆堆栈、排排序空间间等用户户信息,对对于专用用服务器器进程,UUGA在在PGAA中分配配。对于于多线程程进程,UUGA在在Larrge pooo
29、l中分分配。(4)用户户进程UUserr Prroceess在客户端,将将用户的的SQLL 语句句传递给给服务进进程2.2 ORAACLEE 数据据库ORACLLE数据据库的组组成物理操操作系统统文件的的集合。主主要包括括以下几几种。2.2.11 控制制文件(参参数文件件iniit.oora记记录了控控制文件件的位置置)控制文件包包括如下下主要信信息:数据库库的名字字,检查查点信息息,数据据库创建建的时间间戳,所有的的数据文文件,联联机日志志文件,归归档日志志文件信信息,备份信信息等。有了这些信信息,OOraccle就就知道那那些文件件是数据据文件,现现在的重重做日志志文件是是哪些,这这些都是
30、是系统启启动和运运行的基基本条件件,所以以他是OOraccle运运行的根根本。如如果没有有控制文文件系统统是不可可能启动动的。控控制文件件是非常常重要的的,一般般采用多多个镜相相复制来来保护控控制文件件,或采采用RAAID来来保护控控制文件件。控制制文件的的丢失,将将使数据据库的恢恢复变的的很复杂杂。控制制文件信信息可以以从V$Conntroolfille中查查询获得得。2.2.22 数据据文件(数数据文件件的详细细信息记记载在控控制文件件中)可以通过如如下方式式查看数数据文件件SQL sellectt naame froom vv$daataffilee;NAME-/u05/dbff/PRR
31、OD/sysstemm_011.dbbf/u06/dbff/PRROD/temmp_001.ddbf/u04/dbff/PRROD/useers_01.dbff/u09/dbff/PRROD/rbss_011.dbbf/u06/dbff/PRROD/appplsyys_iindxx_011.dbbf/u05/dbff/PRROD/appplsyys_ddataa_011.dbbf从以上可以以看出,数数据文件件大致可可以分为为以下几几类: 2.2.2.11 系系统数据据文件(sysstemm_011.dbbf)存放系统表表和数据据字典,一一般不放放用户的的数据,但但是用户户脚本,如如过程,函函数
32、,包包等却是是保存在在数据字字典中的的。(数据字字典是一一些系统统表或视视图,他他存放系系统的信信息,他他包括数数据库版版本,数数据文件件信息,表表与索引引等段信信息,系系统的运运行状态态等各种种和系统统有关的的信息和和用户脚脚本信息息。数据据库管理理员可以以通过对对数据字字典的查查询,就就可以了了解到OOraccle的的运行状状态。)2.2.22.2 回滚段段文件(rbss_011.dbbf)如果数据库库进行对对数据的的修改,那那么就必必须使用用回滚段段,回滚滚段是用用来临时时存放修修改前的的数据(Befforee Immagee)。回回滚段通通常都放放在一个个单独的的表空间间上(回回滚表空
33、空间),避避免表空空间碎片片化,这这个表空空间包含含的数据据文件就就是回滚滚数据文文件。2.2.22.3 临时数数据文件件(teemp_01.dbff)主要存放用用户的排排序等临临时数据据,与回回滚段相相似,临临时段也也容易引引起表空空间碎片片化,而而且没有有办法在在一个永永久表空空间上开开辟临时时段,所所以就必必须有一一个临时时表空间间,它所所包含的的数据文文件就是是临时数数据文件件,主要要用于不不能在内内存上进进行的排排序操作作。我们们必须为为用户指指定一个个临时表表空间。2.2.22.4 用户户数据文文件(/appplsyys_ddataa_011.dbbf ,appplsyys_iin
34、dxx_011.dbbf)存放用户数数据,这这里列举举了两类类常见的的用户型型数据,一一般数据据和索引引数据,一一般来说说,如果果条件许许可的话话,可以以考虑放放在不同同的磁盘盘上。2.2.33 重做做日志文文件(联联机重做做日志)用户对数据据库进行行的任何何操作都都会记录录在重做做日志文文件。在在了解重重做日志志之前必必须了解解重做日日志的两两个概念念,重做做日志组组和重做做日志组组成员(Memmberr),一一个数据据库中至至少要有有两个日日志组文文件,一一组写完完后再写写另一组组,即轮轮流写。每每个日志志组中至至少有一一个日志志成员,一一个日志志组中的的多个日日志成员员是镜相相关系,有有
35、利于日日志文件件的保护护,因为为日志文文件的损损坏,特特别是当当前联机机日志的的损坏,对对数据库库的影响响是巨大大的。联机日志组组的交换换过程叫叫做切换换,需要要特别注注意的是是,日志志切换在在一个优优化效果果不好的的数据库库中会引引起临时时的“挂挂起”。通过vv$loog可以以查看日日志组,vv$loogfiile可可以查看看具体的的成员文文件。2.2.44 归档档日志文文件Oraclle可以以运行在在两种模模式之中中,归档档模式和和不归档档模式4。如如果不用用归档模模式,当当然,就就不会有有归档日日志,但但是,系系统将不不会是一一个实用用系统,特特别是不不能用于于生产系系统,因因为此系系统
36、可能能会丢失失数据。但但是在归归档模式式中,为为了保存存用户的的所有修修改,在在重做日日志文件件切换后后和被覆覆盖之间间系统将将他们另另外保存存成一组组连续的的文件系系列,该该文件系系列就是是归档日日志文件件。有人或许会会说,归归档日志志文件占占领了用用户大量量的硬盘盘空间,但是具体想一想,用户是愿意浪费一点磁盘空间来保护数据,还是愿意丢失数据呢?显而义见,我们需要保证我们的数据的安全性。其实,归档并不是一直占领用户的磁盘空间,用户可以把它备份到磁带上,或则删除上一次完整备份前的所有日志文件。2.2.55 初始始化参数数文件initSSID.oraa或innit.oraa文件,因因为版本本的不
37、一一样,其其位置也也可能会会不一样样。初始始化文件件记载了了许多数数据库的的启动参参数,如如内存,控控制文件件,进程程数等,在在数据库库启动的的时候加加载(NNomoountt时加载载),初初始化文文件记录录了很多多重要参参数,对对数据库库的性能能影响很很大。2.2.66 其他他文件2.2.66.1 密码文文件用于OOraccle 的具有有syssdbaa权限用用户的认认证.2.2.66.2 其它日志志文件(1)报警警日志文文件(aalerrt.llog或或alrrt.oora)记录数据库库启动,关关闭和一一些重要要的出错错信息。数数据库管管理员应应该经常常检查这这个文件件,并对对出现的的问题
38、作作出即使使的反应应。可以以通过以以下SQQL 找找到他的的路径selecct vvaluue ffromm v$PARRAMEETERRwheree naame =bbackkgrooundd_duump_desst;(2)后台台或用户户跟踪文文件系统进程或或用户进进程出错错前写入入的信息息,一般般不可能能读懂,可可以通过过ORAACLEE的TKKPROOF工具具转化为为可以读读懂的格格式。对对于系统统进程产产生的跟跟踪文件件与报警警日志文文件的路路径一样样,用户户跟踪文文件的路路径,你你可以通通过以下下SQLL找到他他的路径径selecct vvaluue ffromm v$PARRAME
39、ETERR whheree naame =uuserr_duump_desst;3 Orraclle数据据库常见见的瓶颈颈问题Oraclle 数数据库系系统提供供了相应应的应用用工具,管管理人员员可以方方便地对对Oraaclee进行有有效的管管理。从从而建立立一个良良好的环环境,使使系统发发挥最大大的效能能5。但是是,有时时用户还还是抱怨怨系统运运行速度度慢,对对用户查查询反应应的时间间长,即即出现所所谓的瓶瓶颈效应应。这就就需要管管理人员员对Orraclle进行行调整。在Oraccle系系统中比比较常见见的瓶颈颈出现在在以下部部件中:3.1 中央处处理器(CPUU)CPU是计计算机在在运行中
40、中最重要要的部分分,如果果CPUU总是运运行在极极限速度度下,那那么我们们说CPPU成为为系统的的瓶颈,尤尤其在多多用户同同时使用用系统时时,CPPU的计计算能力力尤为重重要。尽尽管多数数情况下下,都是是由操作作系统的的内核来来管理分分配有效效的CPPU给RRACLLE数据据库进程程使用。但但是,仍仍然会出出现过多多的应用用进程对对CPUU使用周周期激烈烈竞争的的现象。3.2 内存内存是计算算机程序序运行的的场所,处处于等待待状态数数据和请请求信息息也都存存放在内内存中。如如果内存存不足,ccachhe(高高速缓存存区)的的命中率率就不会会太高,大大部分所所需数据据不在ccachhe中,因因此
41、出现现了瓶颈颈问题。3.3 存储设设备诸如硬盘驱驱动器、CCD-RROM等等设备,用用于存储储系统所所需信息息,计算算机系统统每秒能能处理的的最大II/O数数量是固固定的,当当CPUU和内存存要求的的I/OO速度大大于系统统的速率率时,存存储设备备的瓶颈颈就会发发生。3.4 网络当网络负担担太重,网网络部件件速度跟跟不上,不不可能把把数据传传输得更更快,网网络瓶颈颈就会发发生。3.5 其它由于其它系系统硬件件或软件件的原因因而导致致的瓶颈颈,如应应用系统统本身的的设计问问题,超超出系统统吞吐量量(在一一定时间间内系统统处理数数据的能能力)的的限制等等造成的的瓶颈。对于Oraaclee数据库库系
42、统的的存在的的瓶颈问问题的解解决,其其实最终终还是归归结为数数据库性性能优化化问题。实实际上,为为了保证证ORAACLEE数据库库运行在在最佳的的性能状状态下,在信信息系统统开发之之前就应应该考虑虑数据库库的优化化策略。优优化策略略一般包包括服务务器操作作系统参参数调整整、ORRACLLE数据据库参数数调整、网网络性能能调整、应应用程序序SQLL语句分分析及设设计等几几个方面面,其中中应用程程序的分分析与设设计是在在信息系系统开发发之前完完成的。分分析评价价ORAACLEE数据库库性能主主要有数数据库吞吞吐量、数数据库用用户响应应时间两两项指标标6。数据据库吞吐吐量是指指单位时时间内数数据库完
43、完成的SSQL语语句数目目:数据库库用户响响应时间间是指用用户从提提交SQQL语句开开始到获获得结果果的那一一段时间间。数据据库用户户响应时时间又可可以分为为系统服服务时间间和用户户等待时时间两项项,即:数据库库用户响响应时间间=系统统服务时时间 + 用户户等待时时间,上上述公式式告诉我我们,获获得满意意的用户户响应时时间有两两个途径径:一是减减少系统统服务时时间,即即提高数数据库的的吞吐量量:二是减减少用户户等待时时间,即即减少用用户访问问同一数数据库资资源的冲冲突率。4 CPPU参数数的调整整CPU是服服务器的的一项重重要资源源,服务务器良好好的工作作状态是是在工作作高峰时时C使用用率在9
44、90%以以上。如如果空闲闲时间CCPU使使用率就就在900%以上上,说明明服务器器缺资源源,如果果工作高高峰时CCPU使使用率仍仍然很低低,说明明服务器器CPUU资源还还比较富富玉。使用用操作相相同命令令可以看看到CPPU的使使用情况况,一般般UNLLK操作作系统的的服可以以使用ssar一一命令查查看CPPU的使使用率,NNT操作作系统的的服务器器,可以以使用NN能管理理器来查查看CPPU的使使用率。数据库管理理员可以以通过查查看v$syssstaat数据据字典中中“CPUU ussed by thhis sesssioon”统计项项得知OORACCLE数数据库使使用的CCPU时时间,查查看“
45、OOS UUserr leevell CPPU ttimee”统计项项得知操操作系统统用户态态下的CCPU时时间,查查看“OOS SSysttem calll CCPU timme”统计项项得知操操作系统统系统态态下的CCPU时时间,操操作系统统总的CCPU时时间就是是用户态态和系统统态时间间之和,如如果ORRACLLE数据据库使用用的CPPU时间间占操作作系统总总的CPPU时间间90%以上,说说明服务务器CPPU基本本上被OORACCLE数数据库使使用着,这这是合理理,反之之,说明明服务器器CPUU被其它它程序占占用过多多,ORRACLLE数据据库无法法得到更更多的CCPU时时间。数数据库管
46、管理员还还可以通通过查看看v$ssessstatt数据字字典来获获得当前前连接OORACCLE数数据库各各个会话话占用的的CPUU时间,从从而得知知什么会会话耗用用服务器器CPUU比较多多7。出现现 CPPU 资资源不足足的情况况是很多多的:SQLL语句的的重解析析、低效效率的SSQL语语句、锁锁冲突都都会引起起CPUU资源不不足。(1)数据据库管理理员可以以执行下下述语句句来查看看SQLL语句的的解析情情况。SELECCT*FFROMM V$SYSSSTAATWHEREE NAAME IN(parrse timme ccpu , paarsee tiime elaapseed , parrs
47、e couunt(harrd);这里 paarsee tiime cpuu是系统统服务时时间,pparsse ttimee ellapssed是是响应时时间,用用户等待待时间wwaitte ttimee = parrse timme eelappsedd - parrse timme ccpu。由此可可以得到到用户SSQL语语句平均均解析等等待时间间=waaitee tiime/ paarsee coountt。这个平平均等待待时间应应该接近近于0,如如果平均均解析等等待时间间过长,数数据库管管理员可可以通过过下述语语句来发发现是什什么SQQL语句句解析效效率比较较低。程程序员可可以优化化这些
48、语语句,或或者增加加ORAACLEE参数SSESSSIONN_CAACHEED_CCURSSORSS的值。SELECCT SSQL_TEXXT,PPARSSE_CCALLLS,EEXECCUTIIONSSF RROM V$SSQLAAREAAORDERR BYY PAARSEE_CAALLSS.(2)数据据库管理理员还可可以通过过下述语语句查看看低效率率的SQQL语句句,优化化这些语语句也有有助于提提高CPPU的利利用率。SELECCT BBUFFFER_GETTS,EEXECCUTIIONSS, SSQL_TEXXT FFROMM V$SQLLAREEA.(3)数据据库管理理员可以以通过vv
49、$syysteen_eevennt数据据字典中中的“llatcch ffreee”统计计项查看看ORAACLEE数据库库的冲突突情况,如如果没有有冲突的的话,llatcch ffreee查询出出来没有有结果。如果冲突太太大的话话,数据据库管理理员可以以降低sspinn_coountt参数值值,来消消除高的的CPUU使用率率。5 内存存参数的的调整内存参数的的调整主主要是指指ORAACLEE数据库库的系统统全局区区(SGA)的调整整。SGGA主要要由三部部分构成成:共享享池、数数据缓冲冲区、日日志缓冲冲区。系系统全局局区(Systtem Glooball Arrea,SSGA),SGGA随着着不
50、同的的环境而而不同,没没有一种种普通的的最佳方方案,我我们在设设置它之之前要先先考虑以以下的几几个方面面:物理内内存多大大;操作系系统是那那种及占占多大的的内存,数数据库系系统是文文件系统统还是裸裸设备;数据库库运行的的模式8。SSGA包包括:Fixxed sizze、VVariiablle BBuffferss、Reedo Buffferrs。SSGA占占有物理理内存的的比例没没有严格格的规定定,只能能遵从一一般的规规则:SGAA占据物物理内存存的400%660%左左右。如如果通过过直观的的公式化化来表达达则为:OS使用用内存+SGAA+并发发进程数数*(ssortt_areea_sizze
51、+HHashh_arrea_sizze+22M) sellectt suum(vvaluue)/10224/110244 frrom v$ssga;SUM(VVALUUE)/10224/110244- 5000此时 SGGA 的的当前总总大小近近似为 5000MB,并并且这个个值将变变为 SSGA_TARRGETT 的值值。接下下来,执执行语句句: alterr syysteem sset sgaa_taargeet = 5000M scoope=botth;这种方法不不需要为为各个池池设置不不同值;因而,将需要在参数文件中使它们的值为零或全部删除它们。 shareed_ppooll_siiz
52、e = 00largee_poool_sizze = 0java_poool_ssizee = 0db_caachee_siize = 00 再循环数据据库,使使这些值值生效。 这个人工过过程还可可以通过过 Ennterrpriise Mannageer 110g 实施。从从数据库库主页中中,选择择 AAdmiinisstraatioon 选项卡卡,然后后选择 Meemorry PParaametterss。对对于人工工配置的的内存参参数,将将显示标标记为 Ennablle 的按钮钮,以及及所有人人工配置置的池的的值。单单击 Enaablee 按按钮,启启用自动动共享内内存管理理特性。企企业管
53、理理器将完完成剩下下的工作作。 在配置了自自动内存存分配之之后,可可以利用用以下命命令检查查它们的的大小: SQL sellectt cuurreent_sizze ffromm v$buffferr_poool;CURREENT_SIZZE- 3440SQL sellectt poool, suum(bbytees)/10224/110244 Mbbytees ffromm v$sgaastaat ggrouup bby ppooll;POOL MBYYTESS- -java poool 44largee poool 44shareed ppooll 1488正如所看到到的,所所有的池池都从
54、 5000MB 的总目目标大小小中自动动进行分分配。如如图2所所示缓冲冲高速缓缓存大小小是 3340MMB,JJavaa 池是是 4MMB,大大型池是是 4MMB,共共享池是是 1448MBB。它们们合起来来总的大大小为 (3440+44+4+1488=) 4966MB,近近似与 5000MB 的目标标 SGGA 的的大小相相同。 图 2 池的的初始分分配现在假定提提供给OOraccle的的主机内内存从 5000MB 减少为为 3000MBB,这意意味着必必须减少少总 SSGA 的大小小。可以以通过减减小目标标 SGGA 大大小来反反映这种种变化。 alterr syysteem sset s
55、gaa_taargeet = 3000M scoope=botth;现在查看各各个池,可可以看到到: SQL sellectt cuurreent_sizze ffromm v$buffferr_poool;CURREENT_SIZZE- 2444SQL sellectt poool, suum(bbytees)/10224/110244 Mbbytees ffromm v$sgaastaat groupp byy poool;POOL MBYYTESS- -java poool 44largee poool 44shareed ppooll 444占用的总大大小是 2400+4+4+444
56、= 2996MBB,接近近于目标标的 3300MMB。如如图 33 所示示,当 SGAA_TAARGEET 改改变时,如如何自动动重新分分配池。 图 3 在将 SGAA 大小小减少到到 3000MBB 之后后重新分分配池这些池的大大小是动动态的。池池将根据据工作负负载扩展展,以容容纳需求求的增长长,或缩缩小以容容纳另一一个池的的扩展。这这种扩展展或缩小小自动发发生,无无需 DDBA 的干预预,这与与本文开开头的示示例不同同。让我我们暂时时返回到到那个场场景,假假定在初初始分配配后,RRMANN 作业业启动,指指示需要要一个更更大的大大型池,大大型池将将从 44MB 扩展到到 400MB,以以容
57、纳需需求。这这个额外外的 336MBB 将从从数据库库缓冲中中划出,数数据库块块缓冲将将缩小,如如图 44 所示示。 图 4 在对对大型池池的需求求增长之之后经过过重新分分配的池池池的大小变变化基于于系统上上的工作作负载,因因此不需需要为最最坏的情情况调整整池的大大小它们将将根据需需求的增增长自动动调整。此此外,SSGA 的总大大小始终终在由 SGAA_TAARGEET 指指定的最最大值之之内,因因此不存存在使内内存需求求的增长长比例失失调(这这将导致致分页和和交换)的的风险。可可以动态态地将 SGAA_TAARGEET 增增加至绝绝对最大大值,这这个绝对对最大值值是通过过调整参参数 SSGA
58、_MAXX_SIIZE 指定的的。 5.4.22 不受受影响的的池SGA 中中的一些些池不受受动态大大小调整整的影响响,但是是必须显显式指定定这些池池111。其其中值得得注意的的是非标标准块大大小的缓缓冲池,以以及 KKEEPP 池或或 REECYCCLE 池的非非默认块块大小。如如果数据据库有一一个块大大小为 8K,而而想要配配置 22K、44K、116K 和 332K 块大小小的池,那那么必须须手动设设置它们们。它们们的大小小将保持持不变;它们将将不会根根据负载载缩小或或扩展。当当使用多多种大小小的缓冲冲池、KKEEPP 池和和 REECYCCLE 池时,应应当考虑虑这个因因素。此此外,日
59、日志缓冲冲不受内内存调整整的影响响不管管工作负负载如何何,在参参数 llog_buffferr 中设设定的值值是不变变的。( 在 10gg 中,还还可以在在 SGGA 中中定义一一种新的的池:流流池 (strreamm poool),它用用参数 strreamms_ppooll_siize 进行设设置。该该池也不不受自动动内存调调整的影影响。) 这就产生了了一个问问题,如如果需要要一个非非默认块块大小的的池,而而且想自自动管理理其它的的池,那那么该怎怎么办? 如果指定了了这些非非自动调调整的参参数中的的任意一一个(如如 dbb_2kk_caachee_siize),那那么它们们的总大大小将从从
60、 SGGA_TTARGGET 值中减减去,以以计算自自动调整整的参数数值,以以使 SSGA 的总大大小保持持不变。例例如,假假设值看看起来像像这样。sga_ttargget = 5500MMdb_2kk_caachee_siize = 550M其余的池参参数未设设置。550MBB 的 2KBB 缓冲冲池为自自动调整整的池(如如默认块块大小缓缓冲池 (dbb_caachee_siize)、共享享池、JJavaa 池和和大型池池)保留留了 4450MMB。当当以一种种方法动动态地调调整不可可自动调调整的参参数(如如 2KKB 块块大小池池)这种方方法将影影响到可可自动调调整部分分的大小小,可自自动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Pt-IV-M13-生命科学试剂-MCE-4429
- Frutinone-A-生命科学试剂-MCE-8513
- 2-Carbamimidoylsulfanyl-acetic-acid-hydrochloride-生命科学试剂-MCE-6335
- 二零二五年度茶叶品牌授权合作协议
- 2025年度篮球俱乐部赛事安全预案与责任承担协议
- 二零二五年度中式餐厅合伙人合作协议
- 2025年度游艇码头租赁与船舶租赁税务筹划合同
- 二零二五年度表格合同管理系统在线培训及售后服务协议
- 施工现场施工防化学事故威胁制度
- 科技创新在小学生课余生活中的重要性
- 建筑与市政工程第三方质量安全巡查方案
- 成品移动公厕施工方案
- 二零二五版财务顾问保密与工作内容协议3篇
- 2025-2030年中国干混砂浆行业运行状况及发展趋势预测报告
- 2025年度部队食堂食材采购与质量追溯服务合同3篇
- 2025江苏盐城市交通投资建设控股集团限公司招聘19人高频重点提升(共500题)附带答案详解
- 新人教版一年级下册数学教案集体备课
- 2024托管班二人合伙的协议书
- 任务型阅读 -2024年浙江中考英语试题专项复习(解析版)
- 绘本 课件教学课件
- 大型央国企信创化与数字化转型规划实施方案
评论
0/150
提交评论