web-dev-qa-db-ja.com

ビューのスケジュールされたスナップショット(マテリアライズドビューまたはOracle Golden Gateを使用しない)?

Oracle 18cに40のビューがあります GISデータベース作業指示書管理システム (WMS)のマップで使用されています。

  • ビューは、Webサービスを介してWMSマップまで提供されます。
  • ビューごとに平均10,000行あります。

ビューは別のOracleデータベースのdblink-tablesに結合されているため、WMSマップで使用するには速度が不十分です(3秒のマップ更新遅延)。さらに、ユーザーがマップを更新するたびにビューを計算することは悪い考えのようです。これは、マップがリアルタイムで最新である必要がないためです。

別の方法として、ビューのスナップショットを毎週作成したいと思います。スナップショットは、WMSマップで適切に機能する静的テーブルになります。

キャッチ:

残念ながら、オフィスの政治問題により、マテリアライズドビューやOracleのゴールデンゲートなどのテクノロジーを使用してこの問題を解決することはできません。


(マテリアライズドビューやゴールデンゲートを使用せずに)Oracleビューのスケジュールされたスナップショットを取得するためのオプションは何ですか?

たとえば、静的テーブルを切り捨ててビューからテーブルに行を挿入する.SQLスクリプトを作成できます(ただし、初心者として、そのオプションがどれほど効率的またはリスクがあるか、または代替案)。

2
User1973

このビューのsdo_geometry列に実際に関数ベースを作成できます。これにより、クエリの速度が向上する場合があります。

MVを作成できない場合(試しましたか?)、テーブルを作成し(選択としてテーブルを作成...)、ビューからテーブルにMERGEを実行するプロシージャを記述し、すべての実行をスケジュールします。 dbms_jobまたはdbms_schedulerを使用してX分。

または、新しいDBAを取得してください!

1
Simon Greener