問題タブ [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 投票する
8 に答える
726127 参照

sql - Oracle のビューとマテリアライズド ビューの違いは何ですか?

Oracle のビューとマテリアライズド ビューの違いは何ですか?

0 投票する
4 に答える
37393 参照

sql - MySQL でインデックス付きビューを使用することは可能ですか?

MySQL フォーラムで 2005 年の投稿を見つけましたが、それより新しい投稿はありません。それを踏まえると無理です。しかし、3〜4年で多くのことが変わる可能性があります。

私が探しているのは、ビューにインデックスを付ける方法ですが、表示されるテーブルにはインデックスを付けないままにする方法です。インデックス作成は書き込みプロセスに悪影響を及ぼし、このテーブルは非常に頻繁に書き込まれます (インデックス作成によってすべてが遅くなるまで)。ただし、このインデックスの欠如により、クエリが非常に遅くなります。

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

informix - Informix には、「マテリアライズド ビュー」と同等のもの、または DB テーブルの同期機能がありますか

質問: Informix には、Oracle の「マテリアライズド ビュー」に相当する構造がありますか? または、DB リンクを介して 2 つのテーブル (DB ではなく) を同期するためのより良い方法はありますか? 同期を自分で作成することもできました (依頼されました) が、それは車輪の再発明のように思えます。

背景:最近、AppServer と DB サーバーの組み合わせでは負荷を処理できなくなったため、モノリシックな Informix 9.30 DB (Valent の MPM) を分割する必要がありました (DB の一部を 1 つのサーバーで、他の部分を別のサーバーで)。

これを行うには、巨大なファクト テーブルと適切に定義されたディメンション テーブルのスター スキーマに配置されたユーザー定義のテーブル スペース (KPI リポジトリ) を分割する必要がありました。

残念ながら、電話会社のマネージャーは、ディメンション テーブル (正規化、データの冗長性、コーディングの必要なし) を 1 台のマシンに集中させ、他のマシンの DB リンクを介してビューとして利用できるようにすることにしました。ビューがサブクエリで使用されている場合(実証可能)、DBサーバーが時々クラッシュするため、これは遅く不安定です。製品サーバーでは非常にクールではありません

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

mysql - MySQL ビューは常にフル テーブル スキャンを実行しますか?

MySQL 5.1 のビューを使用するクエリを最適化しようとしています。ビューから 1 列を選択しても、常に完全なテーブル スキャンが実行されるようです。それは期待される動作ですか?

ビューは、以下の最初のクエリで指定したテーブルの SELECT "All Columns From These Tables - NOT *" です。

これは、ビューを構成するクエリからインデックス付きの列 PromotionID を選択したときの説明出力です。ご覧のとおり、ビューの出力とは大きく異なります。

ビューから同じものを選択したときの出力

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

oracle - Oracle マテリアライズド ビューのチューニング

アプリケーションでマテリアライズド ビューのチューニングを実行しようとしています。私は実行に着手しました:

プロシージャを作成し、Oracle SQL Developer の SQL_Worksheet に次のコードを記述しました。

明らかに、具体化されたビューは既に作成されています (refresh fast on commmitただし、許容できないほど遅くなります)。Advisor は次のエラーを報告します。

しかし、それ以上の報告はなく、2 番目のエラー メッセージの痕跡もありません。ここで何が問題なのか知っている人はいますか?MV が既に存在し、データベースで動作しているため、ゆっくりではありますが、さらに驚いています。

関連するメモとして、SQL Developer で複数行の文字列を入力する方法を知っている人はいますか。次のようなものを試すと:

SQL Developer は最初の行でチョークします。文字列の連結が頭をよぎりましたが、100 ~ 150 行の MV がいくつかあり、それらのそれぞれに対して手動で行うのは嫌です。

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

oracle - DBMS_MVIEW.REFRESH に暗黙的なコミットがあるのはなぜですか?

最近、Oracle でマテリアライズド ビューを更新する dbms_mview.refresh(...) を呼び出すと、暗黙的なコミットがあることに気付きました。

「そうするから」以外のアイデアはありますか?なぜこのアクションには暗黙的なコミットがあるのですか?

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

unit-testing - Javaでマテリアライズドビューをテストする方法

Hibernate フレームワークを使用して具体化されたビューの自動テストを作成する方法はありますか?

私はそれを機能させる方法がわかりません。私の最初のアプローチは、DBMS_MVIEW.REFRESH ストアド プロシージャを使用することでした。しかし、それは私が必要とするものではありません.ビューをリフレッシュした後、すべてのテストデータがコミットされます. ビューをテストする別の方法はありますか?

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

database - 同じDBサーバーでのOracleマテリアライズドビューとレプリケーション

スケジュールされた時刻にレポートを実行する必要があります。アプリケーションは 24 時間年中無休で実行されるため、「オフピーク」時間はありません。

したがって、レポートを実行しても、システムに過度の負荷がかかることはありません。

アプリケーションは WebSphere v6.1 で実行され、データベースは Oracle 10g R2 です。

私は自由に次のアプローチを持っています

  1. レポート用の非正規化テーブルのセット。
  2. マテリアライズド ビューを作成し、レポートに使用する。ビューは 1 日 1 回更新できます。
  3. 別のスキーマを作成し、Oracle の Data Guard を使用してテーブルをリアルタイムで複製できます。

(1) は、私たちが持っている特定の内部制約のために実現不可能です。

パフォーマンスの観点から、(2) と (3) のどちらが優れているかを知る必要があります。

マテリアライズド ビューは最初はうまく機能するが、データ量が増えるとパフォーマンスが非常に低下するという話を多くの人から聞いています。

誰でも、同じ DB サーバー内のテーブルのレプリケーションの経験があります (ただし、インスタンスまたはスキーマの差分)。

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

sql - Oracle でのリモート マテリアライズド ビューのパフォーマンス

Oracle の具体化されたビューについて質問があります ...

2 つのデータベースがあります。

  1. コア データベース
  2. レポート データベース

レポート データベースには次のものがあります。

  • Core データベースへのデータベース リンク
  • コア データベース内のテーブルのシノニムの数
  • これらのシノニムの上に定義された多数の具体化されたビュー。

ビューは 1 時間ごとに更新されるように設定されています。

ソース システムのデータ ボリュームの増加に伴い、ビューを具体化するための CPU の増加が見られます。

よく調べてみると、ビューの更新プロセスがレポート データベース内に結果セットを構築し、個々の小さな SQL ステートメントをコア データベースに送信しているように見えます。

これらのマテリアライズド ビューの一部は非常に複雑で、テーブル間の結合が多数あります。これにより、Core データベースに対して何百万もの小さな SQL ステートメントが発生します。

私の質問は次のとおりです。対応する「複雑な」ビューをコア データベースに作成し、レポート データベースにマテリアライズド ビューを単純な「SELECT * FROM CORE.MY_MAT_VIEW」として作成する方がよいでしょうか。

ポインタをありがとう、

乾杯、エヴァン