問題タブ [materialized-views]
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.
sql - select ステートメントの 3 つのテーブルのうちの 2 つに対してのみ、コミット時にマテリアライズド ビューを更新することはできますか?
更新する具体化されたビューを使用したいと思いますON COMMIT
。私のバッキング ビューは、ローカル データベースの 2 つのテーブルとリモート データベースの 1 つのテーブルを DB リンク経由で結合します。2 つのローカル テーブルのいずれかに変更が加えられた場合にのみ、ビューを更新するにはどうすればよいですか?
この問題を解決する他の方法はありますか? マテリアライズド ビューで 2 つのローカル テーブルを結合し、リモート データベースの列に NULLS を設定してから、マテリアライズド ビューへの挿入/更新時にそれらのフィールドに入力するトリガーを設定することはできますか? または、マテリアライズド ビューへの更新はソース テーブルに反映されますか?
私はこのようなことをしています:
はREMOTE_TABLE
、2 つのローカル テーブルに関連する情報のルックアップ テーブルにすぎません。ここでは何も動かすべきではありません。マテリアライズドビューを更新するのは、LOCAL_TABLE_A
OR LOCAL_TABLE_B
CHANGE の場合のみです。
oracle - マテリアライズド・ビューは、高速で非正規化された大きなテーブルとして使用できますか?
Oracleマテリアライズド・ビューを使用して、外部キーを持つ複数の関連テーブルを結合し、瞬時に更新されるより大きな非正規化された大きなテーブルを作成できますか?
一部の調査では、高速更新を使用している間は結合が許可されないと言われています。
Oracle Materalizedビューでこの種のことを実行できるというのは間違っていると思いますか?
sql - MySQL を使用したマテリアライズド ビュー
MySQL でエミュレートされたマテリアライズド ビューのパフォーマンスは良好ですか? このリンクの使い方を学んでいます
ありがとう
訂正:「マテリアライズド ビュー」を「エミュレートされたマテリアライズド ビュー」に。
oracle - マテリアライズドの変更
DBリンクによって作成された1つのサーバー上に1つのマテリアライズドビューがあります。そのMviewで実行されているジョブが1つあります。(以前にdbms_refresh.makeで作成されました)。
これで、元のテーブルに3つの新しいフィールドを作成しました。私の質問はです。
1)Mviewを削除して再度作成する必要がありますか?はいの場合、メインサーバーでMviewログを再度作成する必要がありますか?2)Mviewで実行されているジョブはどうなりますか?最初から作成する必要がありますか?
また、Mviewで作成されたビューがあるので、-ビュークエリの作成または置換を実行すると、問題が発生しますか?
ご案内ください。
ありがとう!
sql - マテリアライズド ビューとテーブル: 利点は何ですか?
ベーステーブルをクエリするだけでなく、マテリアライズドビューが望ましい理由は明らかです。あまり明確でないのは、MV と同じデータで別のテーブルを作成するだけの利点です。MV の唯一の利点は、作成/保守の容易さだけですか?
MV は、スキーマが一致するテーブルと、MV の SELECT ステートメントを使用した INSERT INTO と同等ではありませんか?
つまり、次のように MV を作成できます。
また、同等のテーブルを作成できます。
作成/保守の容易さだけが利点であるとは言いませんが、何かが欠けていないことを確認したいだけです。
oracle - ドロップ後の MView の問題
私、
DB link によって作成された1つのサーバーにマテリアライズドビューが1つあります。その Mview で実行されているジョブが 1 つあります (以前に dbms_refresh.make で作成されました)。
これで、元のテーブルに 3 つの新しいフィールドが作成されました。
Mview で実行中のジョブがありました。DBMS_refresh.destroy でジョブを削除しました。次に、Mview をドロップしました (ビューにインデックスをドロップするのを忘れていました)
今、私が以前にsxtractedしたSQLでMviewを作成しようとすると、次のようなエラーが発生しています:-
コマンドの 1 行目から始まるエラー:
コマンド ラインのエラー:1 列:0 エラー レポート:
コマンドの 26 行目から始まるエラー:
コマンド ラインのエラー:26 列:0 エラー レポート: SQL エラー: 接続が閉じられました
oracle - MView の「クエリの書き換えを有効にする」の使用法
Enable Query Rewrite オプションが無効になっている場合、上記のクエリに対して MView が作成されます。マテリアライズド ビューの作成中に ENABLE QUERY REWRITE 句を使用する目的は何ですか。それを削除して作成できますか。コメントする必要がある場合は、MView を使用して、クエリの書き換えを有効にします。
enable query rewrite オプションの使い方を詳しく教えてください。
sql - ORACLE - マテリアライズド ビュー ログ
MVIEW ログを含むテーブルがあります。疑わしいものがあるかどうかを知りたいです。
と
MVIEW ORA-30036 を更新しようとするとエラーが発生するため、この質問をしています。元に戻すテーブルスペース 'UNDOTBS1' でセグメントを 4 ずつ拡張できません。元に戻すテーブルスペースを拡張する以外に何かできるかどうか知りたいですか?
前もって感謝します
sql - AS400 でマテリアライズド クエリを作成できない
as400 で具体化されたクエリを作成しようとすると、エラー メッセージが表示されます。接続に winSql を使用しています。構文は有効なようです。私が間違っていることを指摘していただけますか?
これは私が実行しようとしているステートメントです
これはエラーメッセージです:
私もすぐに作成してみました。
oracle - ソース テーブルの仮想列を使用した Oracle クエリの書き換え
Oracle 11g にテーブル demo_fact があり、そのように定義されたいくつかの仮想列があります。
次に、次のように定義された具体化されたビューがあります
ここで、Query Rewrite を次のクエリで開始する必要があります。
しかし、そうではありません。EXPLAIN_REWRITE を実行した結果は次のとおりです。
バックストーリー: 私は 70M 行と 50 個の仮想列でこれを行っています (それらはすべて同じ構造で、上記の単純なケース ステートメントを持っていますが、比較列と結果列が異なります)。
この問題は、ファクト テーブルに仮想列がある場合にのみ発生するようですが、それらを非仮想列に変更すると、ディスク領域が大量に消費されます。Oracle がクエリを書き換えないのはなぜですか? 修正するにはどうすればよいですか?