會話和事務的區別

http://blog.csdn.net/jiankunking/article/details/23818743

      一個會話可以啓動多個事務,會話是session,指一次連接。
        事務是指一個操作單元,要麼成功,要麼失敗,沒有中間狀態。
        會話中可以完成多個事務。
例如:
        會話好比,在應用程序中連接數據庫要執行連接,然後會關閉,這算一次會話。
        事務呢,就好比在打開會話後要執行程序中的某一個或多個對數據庫進行的操作。
        事物的最好例子就是轉賬,從一個賬戶賺錢到另一個賬戶,兩張表的數據修改,要麼全成功,要門全變回原樣。
        會話看 v$session
        事務看 v$transaction
        這兩張視圖通過 v$session.taddr= v$transaction.addr 連接,
        事務是使數據庫和文件系統分離的一個特性

http://blog.csdn.net/w67995822/article/details/70184151

oracle中有兩個概念,會話與事務。很多朋友可能還不是很明白這二者到底有什麼區別。

會話,即session,當你使用工具如sqlplus或者toad執行連接,連接到某個數據庫的時候,就開啓了一個會話,直到你關閉這次連接,這個會話纔算結束。

事務,即transaction,是一個由多條SQL語句組成的工作邏輯單元,這些語句要麼全部執行成功,要麼全部不執行。只有commit,rollback,或者關閉工具的情況下,事務纔會結束。當一個事務結束之後,下一個可執行的SQL語句自動開啓一個新的事務。事務具有4個屬性:原子性,一致性,隔離性,持久性。這裏不具體說。

以上解釋了什麼是會話和事務,接下來用一個生動的例子來進一步說明它們倆的區別,相信大家就都能明白了。

比如你去銀行辦理業務,當你坐在櫃檯前跟工作人員面對面,開始辦理業務的時候,這個時候‘會話’就開啓了,那麼這個‘會話’結束自然就是你辦理好了所有的業務離開櫃檯的時候。

在辦理業務的時候,比如你要先辦一張銀行卡,然後再往裏面存一萬塊錢,那麼這就相當於兩個事務,一個是辦理銀行卡,一個是存錢。當你拿到銀行卡的時候,相當於這個事務已經commit了,事務結束。當你開始存錢的時候,一個新的事務開啓,存進去之後,第二個事務結束。

綜上,一個會話可以包含很多個事務,會話是一次對數據庫的連接,事務是一個工作單元。

個人總結:

一次會話可以包含多次事務

一次事務必然屬於同一會話

發佈了0 篇原創文章 · 獲贊 1 · 訪問量 3156
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章