Oracle資料庫中快照的使用

來源:互聯網
上載者:User
oracle資料庫的快照是一個表,它包含有對一個本地或遠端資料庫上一個或多個表或視圖的查詢的結果。下面以我在開發襄樊市電信局170話費催繳系統中使用快照加快查詢速度的實現過程為例來說明快照的使用方法:


  oracle資料庫的快照是一個表,它包含有對一個本地或遠端資料庫上一個或多個表或視圖的查詢的結果。正因為快照是一個主表的查詢子集,使用快照可以加快資料的查詢速度;在保持不同資料庫中的兩個表的同步中,利用快照重新整理,資料的更新效能也會有很大的改善。

  下面以我在開發襄樊市電信局170話費催繳系統中使用快照加快查詢速度的實現過程為例來說明快照的使用方法:

  170話費催繳系統是一個向使用者電話播放催繳話費提示音的系統。使用者的欠費金額存放在rs6000小型機sffw使用者下的表yh_qfcx中(yh_qfcx表是一個隨使用者繳費情況動態變化的欠費記錄表),而催繳系統的資料按要求存放在另外一台xf170伺服器dmtcx使用者下,為在dmtcx使用者下使用sffw使用者下表yh_qfcx中的部分資料,我在dmtcx使用者下建立了yh_qfcx的快照S_yh_qfcx,以加快查詢速度。

  具體步驟如下:

  一、在sffw使用者下建立表yh_qfcx的快照日誌;

  只有先建立表yh_qfcx的快照日誌,才能在快照中執行快速重新整理。

  Create snapshot log on yh_qfcx;

  二、在dmtcx使用者下建立到sffw使用者的資料庫鏈link_sf;

  建立了到sffw使用者的資料庫鏈後才能從sffw使用者下的表yh_qfcx中擷取資料。

  Create database link link_sf

  Connect to sffw identified by xxxxxxx using 'rs6000';

  三、在dmtcx使用者下建立快照s_yh_qfcx;

  Create snapshot s_yh_qfcx as

  Select yhh,qf6+qf5+qf4+qf3+qf2+qf1+qf qfje

  From yh_qfcx@link_sf

  Where tjbz='K' and bz6+bz5+bz4+bz3+bz2+bz1+bz>0;

  四、根據需要修改快照重新整理的間隔時間;

  dmtcx使用者下的快照s_yh_qfcx為了與sffw使用者下的主表yh_qfcx保持同步,需要不斷重新整理快照。只有設定了快照的重新整理間隔時間,oracle才會自動重新整理該快照。

  快照的重新整理有兩種方式:快速重新整理和完全重新整理。快速重新整理需要快照的主表先有快照日誌存在;完全重新整理時oracle執行快照查詢,將結果放入快照。快速重新整理比完全重新整理快,因為快速重新整理將主要資料庫的資料經網路發送到快照的資料少,僅需傳送主表中修改過的資料,而完全重新整理要傳送快照查詢的全部結果。

  Alter snapshot s_yh_qfcx refresh fast

  Start with sysdate+1/1440 next sysdate+1/144;

  {此SQL語句的意思為:設定oracle自動在1分鐘

  (1/24*60)後進行第一次快速重新整理,以後每隔10分鐘

  (10/24*60)快速重新整理一次。}

  Alter snapshot s_yh_qfcx refresh complete

  Start with sysdate+1/2880 next sysdate+1;

  {此SQL語句的意思為:設定oracle自動在30鈔

  (30/24*60*60)後進行第一次完全重新整理,

  以後每隔1天完全重新整理一次。}

  說明:

  1、因為快照重新整理是伺服器自動完成的,所以要保證oracle資料庫啟動了快照重新整理進程。查看oracle資料庫是否啟動了快照重新整理進程,可以以資料庫sys身份查看視圖V_$SYSTEM_PARAMETER中的參數snapshot_refresh_processes的值是否為1,如果不為1,則快照重新整理進程未啟動。

  2、啟動快照重新整理進程的方法為:修改oracle資料庫的初始設定檔案initorcl.ora,將其中的snapshot_refresh_processes參數的值改由0改為1,然後重新啟動oracle資料即可。

  3、需要說明的是:建立快照日誌時oracle資料庫為我們建立了一個基於yh_qfcx的觸發器tlog$_yh_qfcx和快照日誌表mlog$_yh_qfcx;建立快照時oracle資料庫為我們建立了一個表、兩個視圖、一個索引,它們分別為:

  一個表:snap$_s_yh_qfcx;

  兩個視圖:mview$_s_yh_qfcx和s_yh_qfcx;

  一個索引:I_snap$_s_yh_qfcx(

  基於表snap$_s_yh_qfcx中的m_row$$欄位。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.