問題タブ [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.

0 投票する
1 に答える
2146 参照

database-design - OLTP アプリケーションでのビジネス レポート

Oracle Database 10g Enterprise Edition を使用する OLTP アプリケーションがあり、次のニーズを満たすビジネス レポート レイヤーを構築する予定です。

  • 現在の OLTP データベース設計の複雑さを回避する
  • 現在の OLTP レポートのクエリ パフォーマンスの向上
  • 他のアプリケーションへの読み取り専用アクセスの提供
  • ビジネス ユーザーがアドホック レポートを実行できるようにする

私たちが考えている解決策は、現在の OLTP で Oracle マテリアライズド ビュー (MV) を使用して DB キャッシュ レイヤーを作成することです。MV は非正規化され、レポート用に設計されます。MV ログは、増分更新を使用して MV への変更を同期します。

私の質問は、

  1. このアプローチは理にかなっていますか (MV)? OLTP レポート ソリューションを構築するために MV を使用した人はいますか?
  2. このアプローチ(MV)の欠点は何ですか?
  3. 同期を実行する手順を使用して、Oracle CDC とテーブルを使用するのはどうですか。
  4. 他のアプローチはありますか?

ありがとう、シェリー

0 投票する
1 に答える
594 参照

python - キャッシュテーブルから本番テーブルへデータをマテリアライズする【PostgreSQL】

次の状況に最適なソリューション (パフォーマンス/簡単なコード) を見つけようとしています。

A (本番テーブル) と A' (キャッシュ テーブル) の 2 つのテーブルを持つデータベース システムを考えてみます。

  • 将来の行は、最初に A' テーブルに追加され、本番の行が妨げられないようにします。
  • タイマーが (たとえば、真夜中に) 開始すると、A' からの行が A に組み込まれます。重複、存在しない行などの処理を考慮する必要があります。

マテリアライズド ビュー、トリガーなどについていくつか読んでいます。問題は、サーバー (実際には PowerDNS サーバー) の参照テーブルであるため、運用テーブルにあまり多くのノイズを導入しないことです。

それで、あなたたちはそれをどう思いますか?トリガー、MV、またはデータベースの外部でプログラムを使用する方がよいでしょうか?? (私はpythonを使用しています、ところで)

助けてくれてありがとう。

0 投票する
1 に答える
384 参照

sql - トリガーを使用して、オラクルのマテリアライズドビューで変更されたデータがどのテーブルであるかを検出することは可能ですか?

具体化されたビューがあり、検出したい:

  • マテリアライズド ビューが更新されたとき
  • どのテーブルの
  • どのデータ (または行) が変更されましたか?
0 投票する
2 に答える
342 参照

sql - 次のコードの何が問題になっていますか?トリガーの代わりにテーブルに作成することはできませんが、ビューで作成しています(Orders_MV)

重複の可能性:
このトリガーが失敗するのはなぜですか?無効な識別子と表示されます。


0 投票する
1 に答える
1862 参照

sql - コミット時の具体化されたビューの更新

TABLEと の2 つの列COL_1を持つテーブルがあるとしますCOL_2

を読み取るだけの具体化されたビューがあり、次のようTABLE.COL_1に設定されていますREFRESH FAST ON COMMIT

を更新するTABLE.COL_2と、マテリアライズド ビューは更新されますか?

0 投票する
0 に答える
181 参照

oracle - ピボットのない行間の宣言的整合性制約

次の結合テーブルのような状況があります。

重複するグループが入力されないように、テーブルに制約を設定する必要があります。言い換えると:

失敗するはずですが、

それは異なるグループであるため、成功するはずです。

私が考えた2つの方法は次のとおりです。

  1. 順序に基づいてマテリアライズ ビューでテーブルをピボットし、ピボット フィールドに一意のキーを配置します。Oracleでは、ピボットルールと32列のインデックス制限の両方のためにグループ内の行数を制限する必要があるため、これは好きではありません(この2番目の問題を回避する方法を考えましたが、それでも).
  2. B_ID の組み合わせで一意のハッシュ値を作成し、それを一意にします。たぶん、私は数学者として十分ではありませんが、B_ID に使用できる値の数を制限しないでこれを行う方法を思いつきません。

ある種の順序付け列を追加して別の一意のキーを設定するだけでよいなど、明らかに欠けているものがあるように感じますが、かなりの量を読んでも何も思いつきませんでした。継承したデータ モデルに欠陥がある可能性もありますが、同様の柔軟性が得られるものは思いつきません。

0 投票する
2 に答える
367 参照

php - 現在の情報で mysql ビューを作成する方法

そのような現在の情報のビューを作成したい:

上記のステートメントは、クエリのスナップショットを作成します。

したがって、このクエリの実行後に「products」テーブルのアイテムの状態を変更しても、ビューには反映されません。これが mysql の CREATE VIEW の機能であることは理解しています。現在の情報を表示またはフィルタリングするために使用するスイッチまたはコマンドはありますか?

0 投票する
1 に答える
4560 参照

oracle - Oracle:XMLTypeからデータを抽出する高速リフレッシュマテリアライズドビューを作成するにはどうすればよいですか?

2つの列を持つテーブルがありますxml_documents。1つのdocument_id列(主キー)とxml、スキーマのないXMLデータを含む列XMLTypeです。次のコマンドだけでマテリアライズドビューを作成できますdocument_id

これは正常に機能しますが、あまり役に立ちません。ご想像のとおり、マテリアライズドビューでXMLからデータを抽出したいので、このためにを使用しますextractValue()。私は次のことを試みています:

これは次の場合に失敗します。

XMLから値を抽出するコミットマテリアライズドビューで高速リフレッシュを作成するにはどうすればよいですか?

0 投票する
3 に答える
18460 参照

oracle - Oracleでデータの変更を追跡するための最良の方法

私が話しているタイトルとして、オラクルのデータ変更を追跡するための最良の方法は何ですか?どの行が更新/削除/挿入されているのか知りたいだけですか?

最初はトリガーについて考えますが、各テーブルにさらにトリガーを書き込んでから、変更テーブルに影響を与えたROWIDを記録する必要があります。それは良くありません。次に、Googleで検索し、マテリアライズドビューログと変更に関する新しい概念を学びます。データ収集、

マテリアライズドビューログは、元のテーブルと比較できるので、さまざまなレコードを取得できます。フィールドが異なっていても、元のテーブルから新しいテーブルを作成/コピーするのと同じ方法だと思います(ただし、何が違うのかわからない?);

変更データキャプチャコンポーネントは私にとって複雑です:)、それで私はそれを研究するために私の時間を無駄にしたくありません。

オラクルのデータ変更を追跡するための最良の方法を経験した人はいますか?

0 投票する
2 に答える
1671 参照

oracle - Oracleマテリアライズドビューレコードはタイムスタンプを自動的に取得しますか?

Oracleマテリアライズドビューレコードはタイムスタンプを自動的に取得しますか?