oracle產生事務transaction幾種方式或方法

wisdomone1發表於2019-11-12

前言

       為了設計高可用的資料庫,必須要深入掌握資料庫的事務。但是oracle的事務是一個非常龐大的概念及範圍,需要多方面的梳理與思考,才能理解它的精髓,真正設計一個執行良好的資料庫系統。


資料庫事務是一套非常精巧的機制,可以從這些技術概念進行學習:

  • 事務是實現資料庫高併發的基石,非常重要

  • 事務和事務隔離級別密切相關

  • 事務在執行期間會產生鎖

  • 併發事務可能會產生死鎖

  • 事務和資料一致性相關,而資料庫一致性又是透過mvcc實現

  • 事務基於回滾段,二者又是什麼關係

  • 事務和物件的關聯是什麼

  • 事務相關聯的鎖,裡面有幾種型別或類別


本文說說產生資料庫事務的幾種方法或方法,萬里長征從頭始,我們一步步來,慢慢邁入資料庫事務的殿堂。

產生事務的幾種方法

  • dml未提交產生事務

  • select for update產生事務

  • set transaction產生事務

  • dbms_transaction產生事務

示例程式碼

dml未提交事務

SQL> create table t_tran(a int);
Table created.
SQL> insert into t_tran select 1 from dual;
1 row created.
SQL> col sql_text for a50
SQL> set linesize 300
    SID TADDR	             SQL_ID	  PREV_SQL_ID	SQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
	50  0000000084201938		      2un55p68csz4r insert into t_tran select 1 from dual


select for update產生事務

SQL> select * from t_tran for update;
	 A
----------
	 1
	 
	 
SQL> /
    SID TADDR	             SQL_ID	  PREV_SQL_ID	    SQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
	50  0000000084201938		      gmd5z3754t8km     select * from t_tran for update


set transaction產生事務

SQL> set transaction name 'tran1';
Transaction set.
SQL> select * from t_tran;
	 A
----------
	 1
SQL> /
       SID TADDR	    SQL_ID	  PREV_SQL_ID	SQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
	50 0000000084201938		  3rfg8vk38qhcq select * from t_tran


dbms_transaction產生事務

SQL> exec dbms_transaction.read_only;
PL/SQL procedure successfully completed.
SQL> /
       SID TADDR	    SQL_ID	  PREV_SQL_ID	SQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
	50 0000000084201938		  7j2qb5qfzk4hu BEGIN dbms_transaction.read_only; END;


培訓課件

(收費20元)

oracle產生事務transaction幾種方式或方法

oracle產生事務transaction幾種方式或方法


聯絡方式

oracle產生事務transaction幾種方式或方法

oracle產生事務transaction幾種方式或方法



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-2663803/,如需轉載,請註明出處,否則將追究法律責任。

相關文章