create table tab_test_seq(id number,col1 number(14) ,col2 varchar2(24)) ;
create sequence seq_test_insert;--seqence默认cache是20
alter sequence seq_test_insert nocache;
SQL> select sequence_name,cache_SIZE from dba_sequences where sequence_name = 'SEQ_TEST_INSERT' ;
SEQUENCE_NAME CACHE_SIZE
------------------------------ ----------
SEQ_TEST_INSERT 0
--查看执行时间
SQL> set timing on
SQL> begin
2 for i in 1..50000 loop
3 insert into tab_test_seq(id,col1,col2) values(seq_test_insert.nextval,99999,'qqq');
4 end loop;
5 commit;
6 end;
7 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 09.78
--修改cache
drop table tab_test_seq purge;
drop sequence seq_test_insert;
--重新建表
create table tab_test_seq(id number,col1 number(14) ,col2 varchar2(24)) ;
create sequence seq_test_insert;--seqence默认cache是20
alter sequence seq_test_insert cache 1000;
--时间差别还是蛮大的,若在多会话插入及rac环境中,效率的影响更大
SQL> begin
2 for i in 1..50000 loop
3 insert into tab_test_seq(id,col1,col2) values(seq_test_insert.nextval,99999,'qqq');
4 end loop;
5 commit;
6 end;
7 /
PL/SQL 过程已成功完成。
已用时间: 00: 00: 02.29