中石化电子商务平台性能优化报告
2009-07-27
问题提出:
系统整体性能表现过慢
优化目标:
提高系统整体性能
数据库服务器配置:
小型机 :IBM/AIX RISC System/6000
CPU :4
MEMORY :9 Gb
DISK :阵列柜
OS :AIX 5L
ORACLE :PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for IBM/AIX RISC System/6000: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
归档(Archivelog)的共享服务器模式(Shared)
SGA:
Fixed Size 749240
Variable Size 905969664
Database Buffers 3758096384
Redo Buffers 16273408
UGA:
bitmap_merge_area_size integer 1048576
create_bitmap_area_size integer 8388608
hash_area_size integer 4194304
sort_area_size integer 2097152
workarea_size_policy string AUTO
IP Address :10.1.20.33
系统性能诊断:
通过分析STATSPACK报告可以看出,性能瓶颈主要表现在如下几个方面,
MEMORY 资源竞争严重,存在大量的热点块;
I/O等待消耗了大量数据库时间;
CPU 上花费大量的时间进行数据扫描。
问题分析
服务器上Oracle实例配置方面,比较合理,参数的调整对性能的提升效果已经不明显。问题的重点在以下方面:
l 对Oracle实例配置参数的分析可以看出,影响I/O的配置参数设置需要调整。
l 对系统数据库存贮架构的分析,表空间以及部分存贮参数需要调整。
l 对系统性能在平均负载情况和负载高峰期的数据库活动以及等待事件的分析可以看出,关于订单、询价书、询价方案、报价书、合同以及供应商等信息的检索是影响性能的主要因素,CPU、I/O、MEMORY资源的竞争主要表现在这些信息的关联查询中,造成大量的排队等待,降低了系统性能。
l 对外提供共享数据的视图存在性能问题
优化方案:
针对性能诊断涉及的问题,考虑到在不改变服务器硬件资源以及不间断应用系统的情况,利用Oracle 9i的特点,采取最小化结果集、减少逻辑读、减少物理读、减少排序等措施,解决CPU、I/O、MEMORY资源的竞争,提升系统性能。
优化处理:
一、数据库级的优化
I/O参数调整:提高I/O的吞吐量
二、系统存贮架构级的优化
本系统数据存贮的表空间为:WZEC、INDX、ORDERIND以及分区表空间WZHT_P。其中,WZHT_P中存贮了QUEST的数据,现全部移出到QUEST中;
SYSTEM表空间扩展:满足系统字典的存贮空间需要;
部分表的存贮参数调整(initrans等):增加初始事务的分配能力;
索引的调整:增加必要的索引,删除不必要的索引,从而减少磁盘I/O,降低CPU负载;
分区表的调整:合同主附表上采用了分区技术,但缺少分区索引,建立本地分区索引;
索引表空间调整:调整INDX表空间中的部分索引到ORDERIND表空间;
统计分析:收集最新统计数据,提高Oracle优化器执行SQL语句的性能;
三、共享数据视图的优化
建立日期函数,规范时间戳类型数据作为检索条件的语句实现,参见“日期函数”文件;
改写视图定义语句,重建视图,参见“关于视图的优化”文件;
SQL语句案例
涉及订单、合同、询价书、报价书、询价方案以及供应商等数据量比较大的表间关联的查询语句,详见“问题语句”文件,其中列有典型的低效语句案例以及优化后的写法。
优化结论
一、目标实现
通过本次优化,系统整体响应达到秒级,性能趋于稳定,实现优化目标。其中:
对外发布的共享数据视图响应时间提高到1---2秒内
合同综合查询由原来将近一分钟提高到2秒左右;
订单查询由将近一分钟提高到10秒以内;
询价方案、询价书、报价书等的查询性能都有不同程度的提高。
二、存在问题
本次优化是在不间断电子商务系统应用的情况下完成的,存在几个重要的瓶颈问题因为需要程序的调整没有进行,仍然严重影响系统的性能,在“问题语句”文件的瓶颈案例中提供了详尽的解决方法,有待项目组整改。另外,部分表中的数据需要重新组织物理存贮,提高顺序读取以及多块读取的吞吐量,鉴于应用系统不能停顿,本次优化没有进行处理。
二、参考建议
l LONG类型调整为LOB类型,并设计单独的表进行存贮
l 时间戳类型的字段,尽量减少其上函数索引的建立
l 定期进行统计分析,建议3个月或者半年进行一次
l 增量型数据存贮表上的索引定期进行重构,建议半年进行一次
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16496023/viewspace-610822/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16496023/viewspace-610822/