Oracle公司的调优实例.ppt
《Oracle公司的调优实例.ppt》由会员分享,可在线阅读,更多相关《Oracle公司的调优实例.ppt(116页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、性能性能调整整时间:2004.06.23计划任务模块调整计划任务模块调整计划任划任务(现状状)现在的解决方法小表:采用了snapshot的方法大表:KHTKHXL0和KHTXLJG0采用了通过dblink插入的方式db_link_xx分别是不同的服务器,每个服务器的连接有2M带宽的限制。目前串行运行所有的表没有进行Statistics Collection南平地区县市1县市2县市n计划任划任务(现状状)12xxKHTKHXL0的索引的索引KHTKHXL0_GSKHNYJYGSDM00,KHDM00,NYUE00,JYDM00GSDM00只有一个值NYUE00只有一个值KHTKHXL0_KHDM
2、KHDM00表表KHTKHXL0及索引大小及索引大小SEGMENT_NAME SUM(BYTES)/1048576-KHTKHXL0 13.9453125KHTKHXL0_GSKHNYJY 13.4765625KHTKHXL0_KHDM 6.2890625KHTXLJG0的索引的索引KHTXLJG_KH_SP_INDEXGSDM00,KHDM00,SPDM00GSDM00只有一个值KHTXLJG0_KHDM_INDEXKHDM00KHTXLJG0_SPDM_INDEXSPDM00表表KHTXLJG0及索引大小及索引大小SEGMENT_NAME SUM(BYTES)/1048576-KHTXLJ
3、G0 143.554688KHTXLJG0_KHDM_INDEX 69.1796875KHTXLJG0_SPDM_INDEX 57.5390625KHTXLJG_KH_SP_INDEX 130.195313时间测试使用SET ECHO ONSET TIMING ONSPOOL 文件名.log结果南平地区:一般12分钟计划任划任务(调整思路整思路)采用并行方式KHTKHXL0和KHTXLJG0使用并行方式(union all)进行插入将表空间变成Local Management方式,可以降低recursive sql 的调用试次,有利于提高insert的速度建议用分区表和分区索引。部分索引需要调
4、整建建db link在crm用户下建好指向各个地市的db link调整open_links的参数为16建建LOCAL表空间表空间CREATE TABLESPACE CRM_DATA_TESTDATAFILE EXTENT MANAGEMENT LOCALUNIFORM SIZE 2MCREATE TABLESPACE CRM_INDX_TESTDATAFILE EXTENT MANAGEMENT LOCALUNIFORM SIZE 1M建分区表建分区表PARTITION BY RANGE(KHDM00)(PARTITION P900 VALUES LESS THAN(901),PARTITIO
5、N P902 VALUES LESS THAN(903),PARTITION P903 VALUES LESS THAN(904),PARTITION P921 VALUES LESS THAN(922),PARTITION P922 VALUES LESS THAN(923),PARTITION P923 VALUES LESS THAN(924),PARTITION P924 VALUES LESS THAN(927),PARTITION P927 VALUES LESS THAN(928),PARTITION P928 VALUES LESS THAN(929),PARTITION P9
6、29 VALUES LESS THAN(930)TABLESPACE CRM_DATA_TEST;KHTXLJG0INSERT/*+append*/INTO CRM.khtxljg0NOLOGGINGSELECT/*+FULL(a)*/135021000000,900|SUBSTRB(a.khdm00,4,9),a.spdm00,a.zgxl00,a.zdxl00,a.yzgxl0,a.yzdxl0,a.jycljg,a.zzs000FROM CRM.khtxljg0db_link_01 aUNION ALLSELECT/*+FULL(a)*/135021000000,902|SUBSTRB(
7、a.khdm00,4,9),a.spdm00,a.zgxl00,a.zdxl00,a.yzgxl0,a.yzdxl0,a.jycljg,a.zzs000FROM CRM.khtxljg0db_link_02 aUNION ALLKHTKHXL0INSERT/*+append*/INTO CRM.KHTKHXL0NOLOGGING SELECT/*+FULL(a)*/135021000000,928|SUBSTRB(KHDM00,4,9),NYUE00,JYDM00,RXL000,DPZXL0,YXL000,SYYXL0,DPZYGL FROM CRM.KHTKHXL0DB_LINK_09 a
8、WHERE NYUE00=TO_CHAR(SYSDATE,YYYYMM)UNION ALLSELECT/*+FULL(a)*/135021000000,929|SUBSTRB(KHDM00,4,9),NYUE00,JYDM00,RXL000,DPZXL0,YXL000,SYYXL0,DPZYGL FROM CRM.KHTKHXL0DB_LINK_10 a WHERE NYUE00=TO_CHAR(SYSDATE,YYYYMM);UNION ALL调整索引整索引KHTKHXL0KHTKHXL0_KHJYDM(KHDM00,JYDM00)KHTXLJG0KHTXLJG0_KHSPDM(KHDM00
9、,SPDM00)采用分区(Local Prefixed)方式采用索引组织表创建索引组织表创建索引组织表Create table name(col1 varchar2(10)not null,)Organization indexTablespace.时间测试使用SELECT SYSDATE FROM DUAL;SET ECHO ONSET TIMING ONSPOOL 文件名.log结果南平地区:一般9分钟主要是取KHTXLJG0时节约了约3分钟调整总结调整总结调整难点(在v$system_event中查询)事件 SQL*Net more data from dblinkSELECT EVEN
10、T,TOTAL_WAITS,TIME_WAITEDFROM V$SESSION_EVENTWHERE TOTAL_WAITS0 AND SID=(SELECT DISTINCT SID FROM V$MYSTAT)用crm,crm1,crm01,crm02,crm03,crm04,crm05,crm06,crm07,crm08,crm09,crm10定期进行5%的Statistics Collection建议使用LOCAL表空间,以降低Recursive SQL的调用,采用分区表,合理选择索引的列和顺序服务器调整服务器调整调整工具调整工具Windows性能管理器,任务管理器Unixtopas,
11、vmstat,sar服服务器端器端调优Page IN/OUT的情况CPU的使用情况DISK I/O信息Alert.log中的信息$ORACLE_HOME/admin/bdumpSTATSPACK内存内存(南平南平)总共2G物理内存Oracle的SGA为1.1G,使用pre_page_sga参数常驻内存总连接数为30左右,峰值时内存为1.5G总结:内存方面不存在问题CPU(南平南平)显示有4个CPU一般利用率在20%左右总结:CPU方面不存在问题DISK I/O(南平南平)只有一个60G的硬盘操作系统、Oracle程序、数据库所有的文件在一个物理磁盘上总结:DISK I/O方面不够理想,应当选择
12、多个小硬盘。DISK I/O(福州福州)通过topas和sar观查disk2非常忙通过v$filestat和v$datafile进行关联,在/u02和/u03上的Oracle数据文件读写很高:SELECT SUBSTR(F.NAME,1,4)DISK,SUM(S.PHYRDS),SUM(S.PHYWRTS)FROM V$DATAFILE F,V$FILESTAT SWHERE F.FILE#=S.FILE#GROUP BY SUBSTR(F.NAME,1,4)可以进一步通过lslv,lsvg,lspv命令看/u02和/u03在那块盘上Alert.log文件文件在alert.log中显示大量的c
13、heckpoint not completed信息log_buffer只有64k有三个日志组,每组一个成员,每个成员只有1M应当调整log_buffer的大小到1m,增加日志组的大小和数量,如(5组,每个20m)ORA-00600错误STATSPACK的使用的使用STATSPACKInstance Efficiency Percentages(Target 100%)Buffer Nowait%:100.00 Redo NoWait%:100.00 Buffer Hit%:95.97 In-memory Sort%:99.74 Library Hit%:99.69 Soft Parse%:99
14、.31 Execute to Parse%:-3.23 Latch Hit%:99.99Parse CPU to Parse Elapsd%:39.59%Non-Parse CPU:98.65Top 5 Wait Events Wait%TotalEvent Waits Time(cs)Wt Time-SQL*Net more data from dblink 56,250 36,386 57.88direct path read 7,073 4,549 7.24db file parallel write 1,540 3,666 5.83db file scattered read 7,85
15、9 3,123 4.97control file parallel write 1,225 2,755 4.38 -如何安装如何安装创建一个120M左右的表空间,如perfstat在服务器端用sqlplus(登录到sys as sysdba用户)运行?/rdbms/admin/spcreate如何生成report?/rdbms/admin/spreport如何清除过多的数据?/rdbms/admin/sppurge如何运行收集?exec statspack.snapdbms_job.submit(,begin statspack.snap;end;,.)效率效率 Buffer Nowait数值
16、大(95%)表示数据缓冲区足够大否则需要增加数据缓冲区的大小,或调整数据文件IO的速度效率效率 Redo Nowait数据大(99%)表示log_buffer足够否则调整log_buffer的大小效率效率 Buffer Hit足够大(95%)表示命中率较高否则可以调整数据缓冲区的大小效率效率 In-memory Sort数字大(95%)表示大部分数据在内存中进行排序否则调整sort_area_size的值,或pga_aggregate_target的值效率效率 Library Hit数据大(95%)表示SQL的命中率较高否则需要调整shared_pool_size的值,或者需要调整SQL,使用
17、bind variable效率效率 Soft Parse数字大(95%)表示SQL的缓冲情况比较好否则需要增加shared_pool_size的值效率效率 Execute to parse=100*(1-Parses/Executions)数据大表示重新解释的次数较多,在snapshot较多的系统中值可能很低,因为完全刷新后很多SQL语句执行时需要重新解释,动态的创建表或索引等也会增加Parse的次数.效率效率 Latch Hit数字大(99%)表示内部锁比较好否则需要查询Oracle有关版本的bug说明效率效率 Parse CPU to Parse elapsed做SQL解释时CPU的利用率
18、数据越大表示解释的效率高效率效率 Non-Parse CPU表示用于SQL Parse的CPU的比重数值越大越好事件事件 Buffer Busy Wait访问的块正在读取中其他他进程正在将数据读到Cache中访问的块正在修改中其他进程正在修改Cache中的数据调整思路:将数据文件放在读取速度更快的设备上事件事件 Checkpoint Completed等待Checkpoint操作结束调整思路:减小一些log buffer的大小增加Checkpoint的频率将log文件放在更快的磁带设备上,如RAID事件事件 Control File Parallel Write等待向所有的控制文件写数据调整思
19、路:减少control file的个数将不同control file分布到不同的磁盘驱动器事件事件 Control File Sequential Read 从Control File中读取信息调整思路:将Control File放在比较空闲的磁盘上将Control File放在速度更快的磁盘上事件事件 Control File Single Write某一个进程需要向Control File写东西,如:创建数据文件等事件事件 DB File Parallel Read一般在并行恢复时发生调整思路:调整文件在不同磁盘驱动上的分布选用访问速度更快的磁盘事件事件 DB File Parallel
20、WriteDBWn进程将数据写入数据文件调整思路:调整文件在多个磁盘控制器之间的分布采用条带化技术,提高写速度。事件事件 DB File Scattered Read读取大量的数据块到Cache中调整思路:调整大表上的索引收集更集统计信息事件事件 DB File Sequential Read一般指读取索引的数据调整思路:调整索引的设计Rebuild索引,提高索引效率事件事件 Direct Path Read指直接从文件中读取,主要发生在检查Direct Path Writer写是否完成调整思路:调整文件分布选用更快的磁盘设备事件事件 Direct Path Write直接向数据文件写数据,发
21、生在Direct Insert中Insert/*+append*/sqlldr中设置direct=true调整思路:调整文件分布选用更快的磁盘设备事件事件 EnqueueEmqueue是Oracle内部的一种锁,用来进行串行操作调整思路:增大enqueue_resources参数事件事件 Free Buffer Wait寻找可用Cache块,如大量的数据被修改,或没有可用的空闲块调整思路增加db_block_buffers或db_cache_size的值事件事件 IO Done等待写文件操作结束,在不支持异步I/O的操作系统中经常发生调整思路查询有关平台可否使用异步I/O调整文件分布采用更快的
22、磁盘设备事件事件 Log Buffer Space生成日志的速度大于将日志写到磁盘的速度调整思路增加log_buffer的值将log文件放到空闲的磁盘设备上事件事件 Log File Parallel Write等待log写操作结束,如日志组有的成员在快的设备上,有的在慢的设备上调整思路将log的成员分布到不同的磁盘上用更快的磁盘设备事件事件 Log File Switch()Archiving needed 等待归档完成调整思路:增加log_archive_processes的数量Checkpoint not completed 等待切换到下一个日志调整思路:增加日志组的数据,调整大小Com
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 公司 实例
限制150内