您好,登錄后才能下訂單哦!
4、事務
4.1事務的概念
從第一個DML語句開始執行,以rollback或者commit為結束標記,之前所有的DML操作(insert,update,delete )都是屬于這個事務的范圍內。
4.2 事務的提交操作
(1)首先解鎖一個用戶并改密碼
SQL> alter user scott account unlock;
User altered.
SQL> alter user scott identified by scott;
User altered.
(2)連接到scott用戶
SQL> conn scott/scott;
Connected.
(3)創建一個tt的表
SQL> create table tt(
2 id number
3 );
SQL> insert into tt values(1);
1 row created.
SQL> select * from tt;
ID
----------
1
SQL> insert into tt values(2);
1 row created.
SQL> select * from tt;
ID
----------
1
2
SQL> commit; --這是一個事務的結束
Commit complete.
--------------------------------- 這是另外一個事務
SQL> update tt set id=3 where id=2;
1 row updated.
SQL> select * from tt;
ID
----------
1
3
SQL> rollback; --這個事務到這里結束
Rollback complete.
SQL> select * from tt;
ID
----------
1
2
兩個問題:
(1).提交的事務是不是就一定會寫磁盤里面
不一定 ? 因為系統的讀寫是異步的,提交了的數據有可能還在臟塊列表中,等到有足夠多臟塊時
DBWn進程才會把一批次的臟塊信息寫進磁盤。
(2).沒有提交的事務是不是就不會寫到磁盤
不一定 ? 因為臟塊鏈表的空間有限,如果一次性對數據進行大量的修改,會產生大量的臟塊超出臟塊
鏈表的長度,此時 DBWn進程會將臟塊信息寫進磁盤,如果用戶提交了,數據已經寫進磁盤,
如果用戶進行回滾操作,也沒問題,Oracle將會利用undo表空間回滾斷的舊鏡像將以前的信
息在磁盤中還原回去。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。