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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » クエリ処理 » クエリの最適化と実行 » マテリアライズド・ビューによるパフォーマンスの向上

 

マテリアライズド・ビューの定義

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

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

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

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

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

マテリアライズド・ビューの恩恵を受けるためにクエリを変更する必要はありません。たとえば、基本となるデータが頻繁に変更されないようなデータ・ウェアハウス・アプリケーションでの使用にマテリアライズド・ビューは向いています。

最適化時に送信されるクエリを部分的または全体的に満たす候補として見なされるマテリアライズド・ビューについて、オプティマイザはそのリストを管理します。オプティマイザがクエリの全体または部分を満たす候補となるマテリアライズド・ビューを検出すると、最適化の列挙フェーズ (コストを基に最適なプランを判断する) で行われる推奨の対象にそのビューを含めます。マテリアライズド・ビューをクエリに一致させるためにオプティマイザが使用する処理を「ビュー・マッチング」と呼びます。オプティマイザがマテリアライズド・ビューを検討するには、そのビューが一定の条件を満たす必要があります。つまり、マテリアライズド・ビューがクエリによって明示的に参照されないかぎり、オプティマイザによって使用される保証がありません。ただし、検討されるビューが条件を満たすようにすることはできます。

マテリアライズド・ビューの使用が許可されていることをオプティマイザが判断すると、候補となるマテリアライズド・ビューのそれぞれが検査されます。マテリアライズド・ビューは、次の場合にビュー・マッチング・アルゴリズムによって使用することが検討されます。

マテリアライズド・ビューが上記の基準を満たし、クエリの全体または一部を満たすことがわかった場合、コストベースの最適プランが検出されると、ビュー・マッチング・アルゴリズムは最適化の列挙フェーズ用の推奨にマテリアライズド・ビューを含めます。ただし、それにより最終的にそのマテリアライズド・ビューが最終実行プランで使用されるというわけではありません。たとえばマテリアライズド・ビューを使用しない別のアクセス・プランの方がコストが安いと推定されると、クエリの結果を計算するのに適切であると考えられるマテリアライズド・ビューであっても使用されない可能性があります。