Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » テーブル、ビュー、インデックス » マテリアライズドビュー

 

マテリアライズドビューを使用したパフォーマンスの向上

適切な条件でマテリアライズドビューを使用すると、ジョインなどのコストの高い操作を事前に計算し、その結果をディスクに保管されるビューの形式で格納することによって、パフォーマンスを大幅に向上させることができます。オプティマイザでは、クエリを満たす最も効率的な方法を決定するときに、クエリ内でマテリアライズドビューが参照されていなくても、マテリアライズドビューを検討します。

アプリケーションの設計では、負荷の高い集約操作やジョイン操作を含むクエリのように、コストの高いクエリやクエリでコストの高い部分を頻繁に実行する場合は、実体化ビュー (Materialized View) を定義することを検討してください。マテリアライズドビューは、次のような環境でのパフォーマンスを向上することを目的に設計されています。

  • データベースのサイズが大きい。

  • 頻繁なクエリにより、大量のデータに対する集約操作やジョイン操作が繰り返し実行される。

  • 基本となるデータへの変更は頻度が比較的少ない。

  • 最新のデータにアクセスすることは重大な要件ではない。

マテリアライズドビューを使用する前に、次の要件、設定、制限を検討してください。

  • ディスク領域の要件   マテリアライズドビューにはベーステーブルからのデータの複製が含まれるため、作成するマテリアライズドビューのサイズ分の領域をデータベースのディスク上に追加で割り付ける必要があることがあります。得られる利点がマテリアライズドビューの使用コストと釣り合うように、追加領域の要件は慎重に検討する必要があります。

  • 保守コストとデータの最新性の要件   マテリアライズドビューのデータは、基本となるテーブルのデータが変更されたときに再表示する必要があります。次のような競合要因を考慮の上、マテリアライズドビューを再表示しなければならない頻度を判断する必要があります。

    • 基本となるデータの変更頻度   データに対して頻繁な変更や大規模な変更が行われると、手動ビューが古くなります。データの最新性が重要な場合は、即時ビューの使用を検討します。

    • 再表示のコスト   各マテリアライズドビューの基本となるクエリの複雑さや関係するデータの量に応じて、再表示に必要な計算のコストが非常に高くなることがあります。そのためマテリアライズドビューが頻繁に再表示されると、データベースサーバが耐えられないほどの負荷がかかる可能性があります。さらに、マテリアライズドビューは再表示操作中は使用できません。

    • アプリケーションのデータ最新性の要件   データベースサーバが古いマテリアライズドビューを使用すると、アプリケーションに対して古いデータを提示することになります。古いデータは、基本となるテーブル内のデータの現在の状態を表していません。古さの程度は、マテリアライズドビューが再表示される頻度によって決まります。高いパフォーマンスを実現するために、許容できる古さの程度を判断するようにアプリケーションを設計する必要があります。

    • データの一貫性の要件   マテリアライズドビューを再表示するときは、マテリアライズドビューを再表示しなければならない一貫性を判断する必要があります。

  • 最適化の使用   クエリの実行時にオプティマイザがマテリアライズドビューを検討することを検証してください。特定のクエリで使用されるマテリアライズドビューのリストは、Interactive SQL でクエリのグラフィカルなプランの [高度な詳細] ウィンドウで確認できます。

    また、Sybase Central でアプリケーションプロファイリングモードを使用して、オプティマイザで列挙されたアクセスプランを確認することで、クエリの列挙フェーズでマテリアライズドビューが検討されたかどうかを判断できます。トレーシングはオンにする必要があります。また、オプティマイザによって列挙されるアクセスプランを確認できるように、OPTIMIZATION_LOGGING トレーシングタイプを含めるように設定してください。

  • データ変更操作   マテリアライズドビューは読み込み専用であるため、データ変更操作 (INSERT、LOAD、DELETE、UPDATE など) を適用できません。

  • キー、制約、トリガ、アーティクル   マテリアライズドビューのインデックスは作成できますが、キー、制約、トリガ、またはアーティクルを作成することはできません。

 参照

マテリアライズドビューとビューの依存性
再表示タイプの手動または即時への設定
マテリアライズドビューの制限