草样年华 » 日志 » ORACLE RAC环境下sequence 的cache参数的重要性
ORACLE RAC环境下sequence 的cache参数的重要性
andzen 发表于 2008-04-05 09:16:22
RAC两个会话分别处于不同node同时并发循环间断去取4万个值 :
nocache: 2100s
cache =1000: 55s
差别却是好大。
单Instance数据库单会话循环不间断去1-4万个值 测试(在家里笔记本上测试结果)过程如下:
nocache: 37.7s 10000
cache :20 4.31s 10000
cache :100 2.92s 10000
cache :1000 5.56s 40000
nocache: 97.7s 40000
基本上cache 大于20的时候性能基本可以接受,最好设置100以上,
nocache的时候性能确实很差,最大相差20倍.
排序参数:oracle默认是NOORDER,如果设置为ORDER;在单实例环境没有影响,在RAC环境此时,多实例实际缓存相同的序列,此时在多个实例并发取该序列的时候,会有短暂的资源竞争来在多实例之间进行同步。因次性能相比noorder要差,所以RAC环境非必须的情况下不要使用ORDER,尤其要避免NOCACHE ORDER组合;
是以为戒,不要随便更改oracle的默认属性,要改也往乐观的方向改,特别是在RAC上,啥事都得小心谨慎些。
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
SQL> create user ikl identified by ikl
2 ;
User created.
SQL> grant dba to ikl;
Grant succeeded.
SQL> conn ikl/ikl
Connected.
SQL> create sequence seq_1 nocache;
Sequence created.
SQL> set timing on
SQL> declare
x number ;
begin
for i in 1 .. 10000 loop
select seq_1.nextval into x from dual;
end loop;
end ;
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:37.88
SQL> create sequence seq_2 cache 20;
Sequence created.
Elapsed: 00:00:00.04
SQL>
SQL> declare
x number ;
begin
for i in 1 .. 10000 loop
select seq_2.nextval into x from dual;
end loop;
end ;
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:04.31
SQL> create sequence seq_3 cache 100;
Sequence created.
Elapsed: 00:00:00.08
SQL> declare
x number ;
begin
for i in 1 .. 10000 loop
select seq_3.nextval into x from dual;
end loop;
end ;
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:02.92
SQL> create sequence seq_4 cache 1000;
declare
x number ;
begin
for i in 1 .. 40000 loop
select seq_4.nextval into x from dual;
end loop;
end ;
Sequence created.
Elapsed: 00:00:00.03
SQL>
9 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:05.56
SQL>
SQL> declare
x number ;
begin
for i in 1 .. 40000 loop
select seq_1.nextval into x from dual;
end loop;
end ; 2 3 4 5 6 7
8 /
PL/SQL procedure successfully completed.
Elapsed: 00:01:37.66
SQL>
shekou 2008.04.05 清明后一天
- » 2006年: 孔雀东南飞
