平台:
生产环境:
安腾64bit CPUx8
16G memory
Windows 2003 Server 64bit
测试环境:
安腾64bit CPUx4
8G memory
Windows 2003 Server 64bit
现象:
同样的一条SQL语句,生产机执行需要200s,测试机上只需要5s,性能有巨大差异。
不在现场,通过常规的诊断步骤去判断:
1.由于数据库参数没有调整过,使用安装时的默认参数,首先进行 数据库参数调优
a.sga_max_size修改为物理内存的60%
b.sga_target修改为物理内存的50%
c.pga_aggregate_target修改为物理内存的25%
2.收集统计信息
exec dbms_stats.gather_schema_stats(ownname=>'<用户名>',DEGREE=>CPU数目);
如有多个用户,修改<用户名>,重复执行该过程。
完成上面两个步骤后,现象依旧。
再次沟通后,发现生产机所有的sql均有这样的情况,怀疑是磁盘阵列的问题。
于是在测试环境和开发环境以sysdba登录均执行以下语句:
sql>set timing on
sql>create tablespace tbs_test datafile '<阵列所在的目录>\tbs_test01.dbf' size 2048M;
sql>drop tablespace tbs_test including contents and datafiles;
并记录执行时间。
发现生产环境耗时4分50秒,测试环境耗时45秒。
由此诊断可断定是磁盘阵列的问题,已要求厂商解决。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/6906/viewspace-349427/
,如需转载,请注明出处,否则将追究法律责任。