Oracle 資料庫中不同事務併發訪問的問題

2021-09-22 06:28:00 字數 655 閱讀 1472

現象

以sql/helper為例,開啟不同的sql視窗,對同乙個**進行操作,如下所示。

視窗1:當執行更新任務、緊接著執行查詢時獲得一組查詢結果。結果是對的。

視窗2:而在另外乙個sql查詢視窗中執查詢,卻得到更新前的結果。

當關閉視窗1時,執行視窗2,發現出現正確的更新結果。

分析

初步分析是資料庫的併發訪問的問題。當在視窗1中執行更新操作,對資料**的引用並未有消除,而是在資料庫中產生了針對當前事務的副本結果。而視窗2所針對的查詢還是舊的更新前的資料庫原本。當關閉視窗1後,資料庫中的**被更新,視窗2再次查詢,得到正確結果。

這也就是併發的後遺症,也是為了併發訪問控制的解決方法的一種現象。如果要做到實時性,那就採用獨佔資源,排他性訪問,等上乙個事務結束,後乙個事務才允許訪問共享資源。

沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的框架所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現,沒有別人的支援與幫助,是萬萬不能的。

Oracle 資料庫的事務

事務 事務 transaction 一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種資料項的乙個程式執行單元 unit 在計算機術語中,事務通常就是指資料庫事務。事務的特性 事務的執行時要麼都成功,要麼都失敗。原子性 atomicity 事務作為乙個整體被執行,包含在其中的對...

ORACLE資料庫事務隔離級別

事務隔離級別 乙個事務對資料庫的修改與並行的另乙個事務的隔離程度。兩個併發事務同時訪問資料庫表相同的行時,可能存在以下三個問題 1 幻想讀 事務t1讀取一條指定where條件的語句,返回結果集。此時事務t2插入一行新記錄,恰好滿足t1的where條件。然後t1使用相同的條件再次查詢,結果集中可以看到...

ORACLE資料庫事務隔離級別

oracle資料庫事務隔離級別 事務隔離級別 乙個事務對資料庫的修改與並行的另乙個事務的隔離程度。兩個併發事務同時訪問資料庫表相同的行時,可能存在以下三個問題 1 幻想讀 事務t1讀取一條指定where條件的語句,返回結果集。此時事務t2插入一行新記錄,恰好滿足t1的where條件。然後t1使用相同...