Oracle閃回查詢,閃回版本查詢與閃回事務查詢的使用區別總結

chenfeng發表於2016-08-23
閃回查詢Flashback Query:
使用帶有AS OF子句的SELECT語句進行閃回查詢。閃回查詢獲取之前的時間點的資料。
語句透過時間戳或SCN顯示地引用過去的時間。返回在那個時間點當時已經提交的資料。
閃回查詢的使用包括:
1. 恢復丟失的資料、撤銷不正確的且已經提交的改變。例如,如果你錯誤地刪除或更新了行並且提交了,可以立即撤銷這個錯誤。
2. 比較當前的資料和早些時候的資料。例如,可以執行一個日報表,來顯示資料從昨天到今天的變化。
可以比較單獨的行;也可以檢視行集合的交集和並集。
3. 檢視事務資料在特定的時間的狀態。例如,可以驗證某一天的帳戶餘額。
4. 透過消除儲存一些型別的臨時資料所需要,簡化應用程式的設計。Oracle允許你直接從資料庫獲取過去的資料。
5. 對過去的資料應用打包的應用,例如報告產生工具。
6. 為應用提供了錯誤改正的自我服務,允許使用者undo和改變他們的錯誤。

閃回版本查詢Flashback Version Query:
使用Flashback Version Query  返回在指定時間間隔或SCN間隔內的所有版本,一次commit命令就會建立一個版本。
 
語法如下:
SELECT .....FROM tablename VERSIONS {BETWEEN {SCN | TIMESTAMP} start AND end} 
--start,end可以是時間也可以是scn
Flashback Version Query偽列說明
versions_start{scn|time}  版本開始的scn或時間戳
 
versions_end{scn|time}  版本結束scn或時間戳,如果有值表明此行後面被更改過是舊版本,如果為null,則說明行版本是當前版本或行被刪除(即versions_operation值為D)。
 
versions_xid 建立行版本的事務ID
 
versions_operation  在行上執行的操作(I=插入,D=刪除,U=更新)

閃回事務查詢Flashback Transaction Query:
Flashback Transaction Query實際上是查詢的資料字典flashback_transaction_query。可以根據flashback_transaction_query 的undo_sql列值返回資料以前版本。

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

相關文章