Oracle 10g中 system 回滾段的作用 |
發(fā)布時(shí)間: 2012/8/24 17:19:27 |
在Oracle10g中依然存在一個(gè)回滾段,名叫system,它是有Oracle在創(chuàng)建數(shù)據(jù)庫的時(shí)候創(chuàng)建的,并且這個(gè)回滾段存在于SYSTEM表空間中。它存在的目的就是為了回滾系統(tǒng)事物,也就是說數(shù)據(jù)字典修改之后的鏡像就存在于system回滾段。
SEGMENT_NAME OWNER TABLESPACE_NAME SEGMENT_ID FILE_ID --------------- ------ --------------- ---------- ---------- SYSTEM SYS SYSTEM 0 1
為了探究system回滾段的作用,我做如下實(shí)驗(yàn): 首先在一個(gè)session中創(chuàng)建一個(gè)測(cè)試表,然后運(yùn)行一個(gè)過程,批量插入1百萬條數(shù)據(jù) SQL> create table test(data varchar2(100));
表已創(chuàng)建。
SQL> begin 2 for v_loop in 1 ..1000000 loop 3 insert into test values('test!'); 4 commit; 5 end loop; 6 end; 7 /
PL/SQL 過程已成功完成。
同時(shí)在另外一個(gè)session中運(yùn)行下面的腳本
SQL> declare 2 v_cnt int :=0; 3 begin 4 for v_loop in 1 ..1000000 loop 5 select count(*) into v_cnt from v$transaction where xidusn=0;---xidusn表示rollback segment_id 6 if v_cnt>0 then 7 dbms_output.put_line('Find it'); 8 end if; 9 end loop; 10 end; 11 / Find it Find it Find it Find it ....省略之...................
system回滾段是用了記錄Oracle內(nèi)部操作的,也就是數(shù)據(jù)字典更改。 看見某本書上面寫system回滾段在Oracle創(chuàng)建之后,就永遠(yuǎn)不會(huì)被使用,恩其實(shí)是錯(cuò)誤的. 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |