問題タブ [materialized]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - マテリアライズド ビューの作成は高速ですが、Oracle 19c では更新に数時間かかります
最近、Oracle 19c でいくつかのマテリアライズド ビューを作成する必要があります。ベース テーブルはすべてリモートの Oracle データベースにあり、クエリは dblink を使用してテーブルを接続し、高速更新は許可されていません。それらのほとんどは、use_hash などのヒントを追加した後、数秒でリフレッシュを完了できます。マテリアライズド ビューの 1 つは作成に 10 秒もかからず、更新を完了するには数日かかることもあります。Webで検索したところ、以下の回答が得られました。
- dbms_mview.refresh(mv_name, 'C', atomic_refresh=>false) を使用します。この解決策は機能しません。
- 高速リフレッシュ。ソリューションは許可されていません。
- 更新を行う代わりに、マテリアライズド ビューを毎回再作成します。これは回避策ですが、解決策ではありません。
- ヒントoptimizer_features_enable(9.0.0)を使用して、テーブルで問題をシミュレートしました(マテリアライズドビューで...選択...に挿入できないため)、ヒントは機能するようですが、具体化されたビュー、実行計画から、ヒントが無視されていることがわかります。また、dbms_refresh.refresh(mv_name) の前に、スケジューラ ジョブに alter session set optimizer_features_enable='9.0.0' を追加しようとしましたが、機能しません。この問題について何か考えがある人はいますか? ありがとうございました。