Oracle資料庫的語句級讀一致性

2021-09-07 08:39:11 字數 306 閱讀 2439

資料庫:oracle

前提:假定100萬行的記錄,在最後一行有乙個資料a=1。

實驗:你在9:00的時候查詢資料,9:05的時候查到最後一行;但是,在9:01的時候有人修改了最後一行資料並提交(commit),改為a=2,瞬間完成。

問題:在9:05的時候你查到的a的值是多少?

對於oracle資料庫來說,永遠是請求那一刻的資料。所以答案是1。

原理:使用者發起的查詢帶有時間戳scn,查詢的scn會跟每行記錄的資料塊頭的scn對比,如果發現是在查詢時間之後做了更改,就會去該記錄對應的undo區域,那裡清楚的記錄著之前的數值。

oracle資料庫髒讀DirtRead

客戶端a和客戶端b分別取請求資料量為1000w的資料庫,a訪問的時間為9點00分,並且select查詢所有資料需要10分鐘直到9點10分才可以返回結果。客戶端b在9點05分的時候去update資料庫所有資料,並且commit成功。請問客戶端a查詢的資料是客戶端update前的還是update之後的資...

oracle資料庫的操作語句

備份 create table 備份名 as select from 表名 恢復 truncate table org group 此為清空表操作,慎用 insert into org group select from 備份名 備份表 oracle使用者終端執行 exp 使用者名稱 密碼 tabl...

oracle 語句建立資料庫

建立臨時表空間 create temporary tablespace soa temp 建立 使用者new user,密碼root,預設表空間soa create user new user identified by root default tablespace soa 或者設定為臨時表空間 ...