アーキテクチャ徹底解説 Microsoft SQL Server 2000

第 15 章 ‐ クエリ プロセッサ

この文章は「アーキテクチャ徹底解説 Microsoft SQL Server 2000」 (発行 : Microsoft Press) より抜粋したものです。

クエリプロセッサは、Microsoft SQL Server エンジンの最も重要なコンポーネントの1つである。ただし、クエリプロセッサと呼ばれる単一のコンポーネントは存在しない。クエリプロセッサはいくつかの関連要素の集合である。これらの要素は相互に緊密に連携しながら、ユーザーやアプリケーションが SQL Server エンジンに実行依頼したクエリを処理する。コンポーネントの一部は、クエリを分析し、さまざまな方法で単純化する。残りのコンポーネントは、このようにして単純化されたクエリを実際に実行する。

クエリの処理に関係するコンポーネントの中で最も重要で複雑なのは、クエリオプティマイザだろう。オプティマイザの仕事は、クエリ(またはバッチやストアドプロシージャの中にある各クエリ)の実行プランを作成することである。このプランはクエリを実行する手順をリストし、各テーブルからデータを取り出す際に使用するインデックスを指定する。このプランには、JOIN や GROUP BY の操作、あるいは並び替えを処理する方法も定義される。

この章では、クエリオプティマイザに焦点を合わせながら、クエリ処理の各段階を説明する。インデックスのさまざまな使用法を示し、テーブルの結合やデータのグループ化の方法を説明する。さらに、SQL Serverから出力されるさまざまな統計情報を利用して実行プランを最適化する方法を探り、以前のクエリの際に作成した実行プランを再利用するための各種のメカニズムを見る。