ホームページ >データベース >mysql チュートリアル >インデックス付きビューが、それを作成するクエリよりもパフォーマンスが優れるのはどのような場合ですか?

インデックス付きビューが、それを作成するクエリよりもパフォーマンスが優れるのはどのような場合ですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-15 22:52:48761ブラウズ

When Do Indexed Views Outperform the Queries That Create Them?

ビューとクエリ: パフォーマンスの比較

データベースの効率に関する重要な質問は、ビューの使用と同等の生のクエリの実行のパフォーマンスの違いに集中しています。 具体的には: 単純なビュー クエリ (SELECT * FROM myView) はその定義クエリ (SELECT * FROM ([query creating myView's result set])) よりもパフォーマンスが優れていますか?

これを理解するには、ビューとクエリの間の主要な違いを調べる必要があります。 ビューは仮想テーブルであり、物理ストレージを持たないデータのサブセットを表します。逆に、クエリはデータを動的に取得します。

インデックス付きビュー: パフォーマンスのゲームチェンジャー

基本ビューではパフォーマンスの向上は最小限ですが、インデックス付きビューでは効率が大幅に向上します。 Microsoft のドキュメントでは、インデックス付きビューが次のように強調されています。

  • マテリアライズ: インデックスの作成時に結果が物理的に保存され、実行時の計算が不要になります。
  • クエリの最適化: クエリ オプティマイザーは、効率の低いテーブル参照をインデックス付きビューに置き換える場合があります。

Microsoft のドキュメント: 具体的な証拠

Microsoft SQL Server のドキュメントには、ビュー上に一意のクラスター化インデックスを作成すると、その結果セットが具体化されて永続化され、それによってコストのかかる実行時処理が回避されると明示的に記載されています。 さらに、ドキュメントでは、クエリ オプティマイザーがインデックス付きビューを直接利用することも、クエリ プラン内でインデックス付きビューを置き換えて最適なパフォーマンスを実現できることも強調しています。

現実世界のシナリオ: インデックス付きビューの利点

何百万もの販売実績を持つ世界的なソフトウェア会社を考えてみましょう。 リトアニアの売上データのみを含むインデックス付きビューでは、この特定の地域のデータ検索が大幅に高速化されます。 インデックスの深さは、インデックス付きビューなしの場合は 21 (Log2(1,000,000 )) から、インデックス付きビューを使用すると 7 (Log2(100)) に減少し、パフォーマンスが 3 倍向上します。

インデックス付きビュー: 単なる美化されたインデックス以上のもの

インデックス付きビューが基になるテーブルの単に拡張されたインデックスであるという概念は不正確です。 Microsoft のドキュメントでは、インデックス付きビューが標準インデックスでは達成できないパフォーマンス上の利点を提供することを明確にしています。

結論: インデックス付きビューが最高に君臨

単純なビューではパフォーマンスが大幅に向上しない可能性がありますが、インデックス付きビューには大きな利点があります。 通常、具体化された結果、永続的なストレージ、クエリ最適化との統合により、定義クエリと比較して優れたパフォーマンスが得られます。 したがって、インデックス付きビューはパフォーマンス向上にとって非常に貴重であることがわかります。

以上がインデックス付きビューが、それを作成するクエリよりもパフォーマンスが優れるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。