|
|
下面是我做的实验:
SQL> conn / as sysdba
Connected.
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
PL/SQL Release 9.2.0.6.0 - Production
CORE 9.2.0.6.0 Production
TNS for Linux: Version 9.2.0.6.0 - Production
NLSRTL Version 9.2.0.6.0 - Production
SQL> select name,value from v$sysstat where name like 'redo size';
NAME VALUE
---------------------------------------------------------------- ----------
redo size 88813560
SQL> desc t
Name Null? Type
----------------------------------------- -------- ----------------------------
C1 NUMBER
SQL> begin
2 for i in 1..10000 loop
3 insert into t values(i);
4 end loop;
5 commit;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select name,value from v$sysstat where name like 'redo size';
NAME VALUE
---------------------------------------------------------------- ----------
redo size 91160824
SQL> begin
2 for i in 1..10000 loop
3 insert into t values(i);
4 commit;
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select name,value from v$sysstat where name like 'redo size';
NAME VALUE
---------------------------------------------------------------- ----------
redo size 96090180
SQL> select 91160824-88813560
2 commit1 from dual;
COMMIT1
----------
2347264
SQL> select 96090180-91160824 commitN from dual;
COMMITN
----------
4929356
相同数量记录的单条提交 产生的redo log 是 成批一次性提交 的 2 倍之多 |
|