もっと詳しく

マテリアライズドビューとは

Oracleマテリアライズド・ビューまたはMVは、データのウェアハウジングおよびレプリケーションに適したオプションです。 内側/外側の等結合に基づくMVは、オンデマンドで、または必要に応じて定期的に更新できます。 リモートテーブルのサブクエリに基づくMVは、双方向レプリケーションをサポートします。 MVには、ユーザーに対して透過的なクエリが含まれ、コスト最適化に基づく書き換えが含まれます。 Oracleには、大規模なクラスのクエリを書き換える機能をサポートするDimensionsという新しいオブジェクトがあります。

MVは、実行時間の前に高価な結合および集約操作が事前に計算されるため、パフォーマンスを向上させます。 オプティマイザは、データベースへの要求を満たすためにMVを使用できる場合を自動的に認識するように設計されています。 上記のように、書き換えはエンドユーザーに対して透過的です。 すべてが適切に設定されている(エラーがない)場合、ユーザーは決して知る必要はありません。 結果を事前にキャッシュしておくと、パフォーマンスが大幅に向上します。

マテリアライズドビューの代わりにテーブルを使用してみませんか?

マテリアライズド・ビューを使用する最大の利点の1つは、Oracleがデータの同期を維持することです。 別の集計テーブルがある場合は、データの同期を維持する必要があります。 これには通常、妥当な量のコードと適切な量のテストが必要であり、ほとんどの組織はミスを犯して、集計テーブルの同期が外れる原因となる穴を残すことに成功しています。 これは、集計テーブルの増分更新を実装しようとする場合に特に当てはまります。

もう1つの大きな利点は、設定に応じて、ユーザーがベーステーブルに対してクエリを発行するときに、Oracleがクエリの書き換えを使用してマテリアライズドビューを使用できることです。 したがって、たとえば、日次、月次、および年次の集計結果を生成する詳細テーブルに対して多数の既存のレポートがある場合、日次レベルでデータを集計するマテリアライズドビューをベーステーブルに作成でき、オプティマイザは次のことができます。そのマテリアライズドビューを既存のすべてのクエリに利用します。 これにより、新しい集計テーブルを使用するために数十のレポートを書き直したり、DBMS_ADVANCED_REWRITEをいじってクエリを独自に書き直したりすることなく、データウェアハウスのレポートワークロードを最適化することがはるかに簡単になります。

マテリアライズド・ビューを使用しないのはいつですか?

マテリアライズド・ビューを使用しないようにアドバイスされる場合があります。 最も一般的なものを以下に示します。

  • ソースデータはシンプルでクエリも簡単です。
  • ソースデータは非常にすばやく変更されるか、Viewを使用せずにアクセスできます。 このような場合、ビューの作成は避けてください。
  • 一貫性は最優先事項です。 ビューは、元のデータと常に完全に一致しているとは限りません。

The post 表対マテリアライズドビュー–オタク日記 appeared first on Gamingsym Japan.