成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

講解Oracle數據庫10g新特性中的閃回查詢

瀏覽:174日期:2023-11-28 16:45:37
這篇論壇文章(賽迪網技術社區)深入探討了Oracle數據庫10g新特性中的閃回查詢,更多相關內容請參考下文。

不需要設置,立即識別對行的所有更改

在 Oracle9i Database 中,我們看到它推出了以閃回查詢形式表示的“時間機器”。該特性允許 DBA 看到特定時間的列值,只要在還原段中提供該數據塊此前鏡像的拷貝即可。但是,閃回查詢只提供某時刻數據的固定快照,而不是在兩個時間點之間被更改數據的運行狀態表示。某些應用程序,如涉及到外幣管理的應用程序,可能需要了解一段時期內數值數據的變化,而不僅僅是兩個時間點的數值。由于閃回版本查詢特性,Oracle Database 10g 能夠更方便高效地執行該任務。

查詢對表的更改

在本示例中,我使用了一個銀行外幣管理應用程序。其數據庫含有一個名稱為 RATES 的表,用于記錄特定時間的匯率。

SQL> desc rates

Name Null?Type

----------------- -------- ------------

CURRENCY  VARCHAR2(4)

RATE  NUMBER(15,10)

 

 

該表顯示 US$ 與各種其他貨幣的匯率,在 CURRENCY 列中顯示。在金融服務行業中,匯率不但在變更時進行更新,而且被記錄在歷史中。需要這種方式的原因是銀行交易可能在“過去時間”生效,以便適應由于匯款而耗費的時間。例如,對于一項在上午 10:12 發生但在上午 9:12 生效的交易,其有效匯率是上午 9:12 的匯率,而不是現在的匯率。

直到現在,唯一的選擇是創建一個匯率歷史表來存儲匯率的變更,然后查詢該表是否提供歷史記錄。另一種選擇是在 RATES 表本身中記錄特定匯率適用性的開始和結束時間。當發生變更時,現有行中的 END_TIME 列被更新為 SYSDATE,并插入一個具有新匯率的新行,其 END_TIME 為 NULL。

但是在 Oracle Database 10g 中,閃回版本查詢特性不需要維護歷史表或存儲開始和結束時間。使用該特性,您不必進行額外的設置,即可獲得某行在過去特定時間的值。

例如,假定該 DBA 在正常業務過程中數次更新匯率 — 甚至刪除了某行并重新插入該行:

insert into rates values ('EURO',1.1012);

commit;

update rates set rate = 1.1014;

commit;

update rates set rate = 1.1013;

commit;

delete rates;

commit;

insert into rates values ('EURO',1.1016);

commit;

update rates set rate = 1.1011;

commit;

在進行了這一系列操作后,DBA 將通過以下命令獲得 RATE 列的當前提交值:

SQL> select * from rates;

CURR  RATE

---- ----------

EURO 1.1011

 

 

此輸出顯示 RATE 的當前值,沒有顯示從第一次創建該行以來發生的所有變更。這時使用閃回查詢,您可以找出給定時間點的值;但我們對構建變更的審計線索更感興趣 — 有些類似于通過便攜式攝像機來記錄變更,而不只是在特定點拍攝一系列快照。

以下查詢顯示了對表所做的更改:

select versions_starttime, versions_endtime, versions_xid,

versions_operation, rate

from rates versions between timestamp minvalue and maxvalue

order by VERSIONS_STARTTIME

/

VERSIONS_STARTTIME VERSIONS_ENDTIME  VERSIONS_XID V  RATE

---------------------- ---------------------- ---------------- - ----------

01-DEC-03 03.57.12 PM 01-DEC-03 03.57.30 PM 0002002800000C61 I 1.1012

01-DEC-03 03.57.30 PM 01-DEC-03 03.57.39 PM 000A000A00000029 U 1.1014

01-DEC-03 03.57.39 PM 01-DEC-03 03.57.55 PM 000A000B00000029 U 1.1013

01-DEC-03 03.57.55 PM 000A000C00000029 D 1.1013

01-DEC-03 03.58.07 PM 01-DEC-03 03.58.17 PM 000A000D00000029 I 1.1016

01-DEC-03 03.58.17 PM 000A000E00000029 U 1.1011

注意,此處顯示了對該行所作的所有更改,甚至包括該行被刪除和重新插入的情況。VERSION_OPERATION 列顯示對該行執行了什么操作 (Insert/Update/Delete)。所做的這些工作不需要歷史表或額外的列。

在上述查詢中,列 versions_starttime、versions_endtime、versions_xid、versions_operation 是偽列,與 ROWNUM、LEVEL 等其他熟悉的偽列相類似。其他偽列 — 如 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN — 顯示了該時刻的系統更改號。列 versions_xid 顯示了更改該行的事務標識符。有關該事務的更多詳細信息可在視圖 FLASHBACK_TRANSACTION_QUERY 中找到,其中列 XID 顯示事務 id。例如,使用上述的 VERSIONS_XID 值 000A000D00000029,UNDO_SQL 值顯示了實際的語句。

SELECT UNDO_SQL

FROM FLASHBACK_TRANSACTION_QUERY

WHERE XID = '000A000D00000029';

UNDO_SQL

--------------------------------------------------

insert into 'ANANDA'.'RATES'('CURRENCY','RATE')

values ('EURO','1.1013');

 

 

除了實際語句之外,該視圖還顯示提交操作的時間標記和 SCN、查詢開始時的 SCN 和時間標記以及其他信息。

找出一段時期中的變更

現在,讓我們來看如何有效地使用這些信息。假設我們需要找出下午 3:57:54 時 RATE 列的值。我們可以執行:

select rate, versions_starttime, versions_endtime

from rates versions

between timestamp

to_date('12/1/2003 15:57:54','mm/dd/yyyy hh24:mi:ss')

and to_date('12/1/2003 16:57:55','mm/dd/yyyy hh24:mi:ss')

/

RATE VERSIONS_STARTTIME VERSIONS_ENDTIME

---------- ---------------------- ----------------------

1.1011

 

 

此查詢與閃回查詢類似。在以上的示例中,開始和結束時間為空,表示匯率在該時間段中沒有更改,而是包含一個時間段。還可以使用 SCN 來找出過去的版本值。可以從偽列 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN 中獲得 SCN 號。以下是一個示例:

select rate, versions_starttime, versions_endtime

from rates versions

between scn 1000 and 1001

/

 

 

使用關鍵詞 MINVALUE 和 MAXVALUE,可以顯示還原段中提供的所有變更。您甚至可以提供一個特定的日期或 SCN 值作為范圍的一個端點,而另一個端點是文字 MAXVALUE 或 MINVALUE。例如,以下查詢提供那些只從下午 3:57:52 開始的變更,而不是全部范圍的變更:

select versions_starttime, versions_endtime, versions_xid,

versions_operation, rate

from rates versions between timestamp

to_date('12/11/2003 15:57:52', 'mm/dd/yyyy hh24:mi:ss')

and maxvalue

order by VERSIONS_STARTTIME

/

VERSIONS_STARTTIME VERSIONS_ENDTIME  VERSIONS_XID V  RATE

---------------------- ---------------------- ---------------- - ----------

01-DEC-03 03.57.55 PM 000A000C00000029 D 1.1013

01-DEC-03 03.58.07 PM 01-DEC-03 03.58.17 PM 000A000D00000029 I 1.1016

01-DEC-03 03.58.17 PM 000A000E00000029 U 1.1011

 

最終的分析

閃回版本查詢隨取隨用地復制表變更的短期易變數值審計。這一優點使得 DBA 能夠獲得過去時間段中的所有變更而不是特定值,只要還原段中提供數據,就可以盡情使用。因此,最大的可用版本依賴于 UNDO_RETENTION 參數。

標簽: Oracle 數據庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲精选视频在线| 夜夜嗨av一区二区三区网站四季av| 黑人巨大精品欧美一区二区小视频| 日韩亚洲欧美中文三级| 久久97超碰国产精品超碰| 六月丁香综合| 亚洲大片免费看| 亚洲一区成人| 亚洲女同ⅹxx女同tv| 欧美日韩在线精品| 国产欧美一区二区在线观看| aaa国产一区| 精品精品国产高清一毛片一天堂| 久久国产麻豆精品| 欧美人伦禁忌dvd放荡欲情| 久久不见久久见免费视频7| 91黄色在线观看| 奇米精品一区二区三区在线观看一 | 国产中文字幕一区| 欧美群妇大交群中文字幕| 久久国产精品免费| 欧美群妇大交群的观看方式| 国产美女久久久久| 在线91免费看| 国产.欧美.日韩| 日韩欧美一级片| 成人动漫中文字幕| 日本一区二区三区四区在线视频| 欧美成ee人免费视频| 中文字幕免费观看一区| 国产精品热久久久久夜色精品三区| 欧美日韩蜜桃| 亚洲精品国产精华液| 久久福利影视| 久久99久久99| 日韩欧美一区二区三区在线| 91在线高清观看| 成人免费一区二区三区视频| 一本色道精品久久一区二区三区| 亚洲伊人伊色伊影伊综合网| 久久久久久精| 久久国产福利国产秒拍| 欧美一级一区二区| av在线播放不卡| 国产免费久久精品| 亚洲精品视频啊美女在线直播| 一区二区三区四区乱视频| 色国产精品一区在线观看| 国产黄色精品视频| 日本一区二区三级电影在线观看 | 欧美va亚洲va| 亚洲无线观看| 亚洲综合网站在线观看| 色哟哟精品一区| 欧美激情一区二区在线| 亚洲国内欧美| 日韩不卡一区二区| 欧美一区二区三区喷汁尤物| 欧美女激情福利| 亚洲中国最大av网站| 欧美日韩国产综合草草| 99久久久精品| 亚洲欧美日韩在线播放| 91官网在线免费观看| 成人激情小说网站| 亚洲视频1区2区| 色婷婷久久久综合中文字幕 | 日韩欧美黄色影院| 欧美日韩亚洲在线| 丝袜亚洲另类欧美| 欧美v亚洲v综合ⅴ国产v| 精品999日本| 免费久久99精品国产| 26uuu另类欧美| 亚洲一区一卡| 国产一区二区三区美女| 国产精品―色哟哟| 一本到三区不卡视频| 不卡电影一区二区三区| 亚洲欧美一区二区久久| 欧美日韩一卡二卡三卡| 欧美视频1区| 久久99精品国产麻豆婷婷| 国产清纯白嫩初高生在线观看91 | 日本一区二区三区国色天香 | 91视频观看视频| 亚洲成人www| 欧美一区二区三区四区五区| 伊人激情综合| 国产精品99久久久久久有的能看| 亚洲三级在线播放| 制服丝袜成人动漫| 99国产精品视频免费观看一公开 | 亚洲欧美电影在线观看| 成人午夜激情视频| 亚洲福利国产精品| 国产亚洲综合在线| 欧美日韩一区二区三区视频| 狠狠色狠狠色综合日日tαg| 国产精品影视网| 午夜欧美电影在线观看| 久久久久久久久久久久久久久99| 久久综合九色综合网站| 欧美 日韩 国产在线| 强制捆绑调教一区二区| 一区二区中文字幕在线| 欧美一区二区三区人| 另类亚洲自拍| 国内精品嫩模av私拍在线观看| 国产精品资源网| 亚洲曰韩产成在线| 国产嫩草影院久久久久| 在线电影一区二区三区| 亚洲欧美大片| 久久er精品视频| 亚洲精品国产无天堂网2021| 2024国产精品| 在线成人av网站| 蜜乳av另类精品一区二区| 欧美日韩亚洲一区二区三区在线观看| 国内外成人在线| 午夜精品久久久久久久蜜桃app| 欧美激情一区不卡| 欧美一二三在线| 色悠悠亚洲一区二区| 亚洲国产99| 91蜜桃免费观看视频| 国产一区二区剧情av在线| 午夜日韩在线观看| 亚洲欧美一区二区久久| 久久久精品中文字幕麻豆发布| 欧美日韩综合不卡| 新67194成人永久网站| 伊人久久综合| 色综合天天综合网天天狠天天 | 成人高清av在线| 久久99国产精品免费| 偷窥少妇高潮呻吟av久久免费| 日韩理论片中文av| 久久精品人人做人人综合| 日韩亚洲欧美成人一区| 欧美精品在线视频| 久久综合影视| 久久精品国产第一区二区三区最新章节 | 久久精品视频在线看| 日韩丝袜美女视频| 欧美日本高清视频在线观看| 欧美中文字幕亚洲一区二区va在线| 香蕉久久夜色精品| 亚洲一区二区三区涩| 激情综合视频| 国产精品99免费看| 欧美三日本三级少妇三99| 91麻豆高清视频| 91在线视频免费观看| 不卡的av电影在线观看| 国产一区二区在线影院| 狠狠色综合播放一区二区| 久久不见久久见中文字幕免费| 麻豆国产精品官网| 紧缚捆绑精品一区二区| 精彩视频一区二区| 激情欧美日韩一区二区| 久久成人羞羞网站| 久久国产尿小便嘘嘘| 蜜臀av一区二区在线免费观看| 丝袜美腿成人在线| 婷婷六月综合网| 日日欢夜夜爽一区| 日韩精品欧美精品| 奇米影视7777精品一区二区| 性感美女久久精品| 日韩国产高清在线| 蜜桃在线一区二区三区| 美女网站色91| 国产精品呻吟| 久久国产精品高清| 欧美性猛交xxxxxx富婆| 精品视频一区三区九区| 欧美剧在线免费观看网站| 欧美久久久久久久久| 欧美一区二区成人6969| 日韩一区二区免费在线电影| 欧美zozo另类异族| 国产欧美一区二区精品性| 亚洲国产精品二十页| 18欧美亚洲精品| 亚洲午夜久久久久久久久电影院| 日韩极品在线观看| 国产米奇在线777精品观看| 成人三级伦理片| 欧美69视频| 99热这里只有成人精品国产| 久久国产欧美| 欧美日韩国产综合视频在线观看| 日韩欧美中文字幕一区| 国产午夜精品久久久久久久| 国产精品进线69影院| 亚洲一本大道在线| 美脚の诱脚舐め脚责91|