oracle資料庫中什麼是已經提交的事務

時間 2022-04-08 09:32:40

1樓:匿名使用者

已經提交的事務即在進行update或insert操作後,進行了commit的操作。

1、如,有以下兩個語句:

update test set id=3 where id=2;

commit;

insert into test values (4,'王五');

commit;

2、如果進行了update及insert操作後不進行提交的話,那麼修改或插入的資料只在當前session有效,並不會寫入資料庫,只有當commit(提交)後,才會生效。

2樓:姑遂向觸

這裡為什麼重點強調 未提交的事務 呢 , • when one-third full

• when there is 1 mb ofredo

• every three seconds• before dbwn writes

這些情況下 都會自動寫入redo logfile, 這種自動的機制是為了 確保避免一次commit的時候執行過多的寫入。

比如我們用sql語句修改了乙個值 但是沒有提交 在上面幾種情況下可能 這個操作已經記錄到了redo logfile 但是這個操作並沒有得到認為的確認,所以當發生系統崩潰等問題時,應該將這種修改回退,因為他並不是人為確認的,並不合法。 未提交的事務就是指 系統自動寫入到redo中但是並沒有得到使用者的commit 確認的事務

3樓:匿名使用者

1 時寫入redo logfile的事務才就已提交的事務碼?而類似every three seconds等自動寫入redo logfile中的資料並不是以提交的事務?

commit 是標記事務提交,會在資料塊上做標記,此時 資料可能在記憶體裡面。

every three seconds等自動寫入redo logfile中的資料並不是以提交的事務?

----這個是將在記憶體中的資料的操作記錄寫入redo log ,達到寫入條件的所有資料都會被寫入而不管它是不是被標記為提交。

2 回退就是回滾,oracle在做修改操作的是除了寫 redo log之外 還會寫 undo 也即回滾記錄,redo的逆向操作。

利用undo 中的資訊對已經修改的操作當時為標記為commit記錄做修改。

datafile中沒有修改,但是資料庫記憶體中的已經修改了,此時資料是不一致的,不符合acid原則。

4樓:匿名使用者

你做了修改,不提交別人就看不到你的修改,是為了體現一致性;回退是做了修改,但最後不想這麼做了,所以才回退,

oracle資料庫中什麼是事物

5樓:匿名使用者

事務處理:所謂的事務處理就是保證操作的完整性,所有操作要麼同時成功,要麼同時失敗。

原理如下:

在oracle每個連線到資料庫的視窗,連線之後建立乙個session。乙個session裡面對資料所做的修改,不會立刻反應在資料庫的真實資料之上,是允許回滾的,當乙個session提交所有的操作後,資料才真正地做出修改。

兩個事務操作:

提交:commit

回滾:rollback

commit後資料無法回滾。

死鎖:乙個session裡面對某行資料進行更新操作,如果沒有commit,那麼另外乙個session針對這行資料的更新將需要等待,直到第乙個session commit後,才提交更新資料。

6樓:賓士

一次完整的業務邏輯操作就叫一次事務。

如:轉賬這個業務邏輯

從你的卡里扣除金額,然後在轉入的卡上增加金額。

請考慮:當你的卡里金額被扣除後,在轉入的時候出現了故障的情況。

此時需要將資料恢復到最初情況,就是將你卡里的錢恢復成原樣(事務的rollback)

這就是乙個完整的業務邏輯,如果你非得把他拆分開錢從你的卡里扣除後,commit,轉入的時候出現故障 rollback,但是由於這是兩個事務,你卡里的錢丟了,這應該不是你想看到的。

7樓:

簡單的說就是一次更新操作.

也可能是多個操作.

你可以認為

提交:commit

回滾:rollback

是一次事務的結束.

8樓:匿名使用者

好問題。明確的知道oracle的transaction的概念非常重要。不管你是當程式設計師還是dba

update是不是事務?select是不是事務?回答【是的】也是對的,回答【不是】也是對的。

我無法直接回答你,請檢視toms的經典圖書【oracle9i10g程式設計藝術】其中關於事務,鎖的描述

必須從第六章開始看,先理解鎖,然後是第七章併發和多版本,最後第8章 事務

絕對不能跳過去直接看事物,直接看第八章肯定看不懂的。

非常好的問題,可惜很多程式設計師不注意也不關心。

oracle資料庫中還原資料在事務提交後至少要保留多長時間?這樣做的目的是什麼

9樓:黃玫瑰爾最美

回退的是undo中記錄的髒塊(雖然事務未提交沒有寫到相應的datafile中,但是觸發ckpt後,undo中會記錄未提交的髒塊) 日誌是不會回退的,只會增長;

oracle資料庫中什麼是事物,Oracle資料庫中什麼是事物

事務處理 所謂的事務處理就是保證操作的完整性,所有操作要麼同時成功,要麼同時失敗。原理如下 在oracle每個連線到資料庫的視窗,連線之後建立乙個session。乙個session裡面對資料所做的修改,不會立刻反應在資料庫的真實資料之上,是允許回滾的,當乙個session提交所有的操作後,資料才真正...

請問在Oracle資料庫中,建立的資料庫使用者都存放在哪兒?使用者授權後的資訊又放在哪兒

使用者會被放在dba users,好想授權資訊也是這裡邊。匯出單張表也會到匯出對這張表有許可權的除系統級使用者之外的使用者 僅限於此表的使用者 在匯入的時候,需在先建乙個相應的使用者,匯入表的時候會自動對這個 些 使用者進行授權。大概是這樣子的,我也是剛學。oracle資料庫在建立後都會有四個預設資...

ORACLE資料庫中什麼是資料字典及作用

資料字典 簡單的說就和我們小學用的詞典的目錄一樣 要查詢個表的資料 首先要確認這個詞典 資料庫 中有這個詞語 表 吧 至於作用 看看資料吧 oracle資料庫乙個最重要的部分就是資料字典,是唯讀型別的表的集合,提供資料庫的資訊。乙個資料字典包括 資料庫物件所有的框架物件的定義 表 檢視 索引 群集 ...

oracle資料庫中in和exists的詳細執行過程

in 其實與等於相似,比如in 1,2 就是 1 or 2的一種簡單寫法,所以一般在元素少的時候使用in,如果多的話就用exists exists的用法跟in不一樣,一般都需要和子表進行關聯,而且關聯時,需要用索引,這樣就可以加快速度。exists是遇到符合條件的記錄就返回 in要等全部記錄都查詢出...

向oracle資料庫中新增資料時提示ORA 00947 沒有足夠的值

向oracle資料庫中新增資料時提示ora 00947 沒有足夠的值。是表1的結構有4個column,顯然插入的值只有三個,才會出現這個問題,再加個column的值。解決方法如下 1 首先在計算機中,開啟oracle的連線程式,用新建的資料庫管理員,滑鼠左鍵單擊 伺服器 按鈕,如下圖所示。2 接著,...