Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。市場を勝ち抜く企業はどこにEnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。著)の第4章から、データベース構造の原理やデータファイルについて確認しました。Serverがクエリを受け取り、データにアクセスするまでの内部動作。リレーショナルエンジンとクエリプロセッサについて紹介している部分をみていきましょう。Serverがクライアントからのクエリを受け取ってから、データにアクセスするまでの内部的なステップを紹介します。クエリが実行されるまでの一連の処理の流れや、その過程で決定されるデータアクセス方法は、クエリ実行時のパフォーマンスに大きな影響を与えます。Serverのコンポーネントの中でも特に重要な部分だと言えます。この処理を行うコンポーネント群を総称して、リレーショナルエンジンもしくはクエリプロセッサと呼んでいます。リレーショナルエンジンの動作を理解することによって、パフォーマンス関連のトラブルシューティングを行う際に、様々な事象の中から重要な問題点を絞り込むことが可能になります。リレーショナルエンジンの構成リレーショナルエンジンは、大きく分けて次の3つのコンポーネントで構成されています。それぞれのコンポーネントは、さらに数多くのサブコンポーネントによって構成されています(図8.1)。クエリのライフサイクルクライアントから受け取ったクエリの処理要求は、リレーショナルエンジン内で図8.2のようなステップを経て実行されます。クエリのライフサイクル[画像クリックで拡大]1プランキャッシュの確認プランキャッシュ(あるいはプロシージャキャッシュ)には、これまでに実行されたクエリの実行プランが一定期間格納されています。格納されたクエリ実行プランは、クエリ実行プラン生成のもととなった実際のクエリテキスト(SELECTステートメントなど)も保持しています。クライアントから受け取ったクエリが、すでにプランキャッシュに存在するクエリと合致する場合は、多大なコストを必要とする最適化などの処理を省くことができます。そのため、クライアントからクエリを受け取ったら、まずプランキャッシュに合致するものが存在するかを、クエリテキストの比較によって確認します。2解析(Parsing)クライアントから受け取ったクエリの解析を行います。BYオペレータ[※1]などにいったん分類し、それらをツリー構造に再構成することを意味します。再構成されたツリーはクエリツリー(またはリレーショナルオペレータツリー)と呼ばれ、その後のステップでクエリの最適化が行われる際に使用されます(図8.3)。結果セットを任意の列で並べ替える際に使用するオペレータです。将来的にクエリが再実行されることに備えて、プランキャッシュに格納するための準備を行います。具体的には、クライアントから受け取ったクエリテキストをパラメータ化クエリに変換します(図8.4)。パラメータ化クエリへの変換[画像クリックで拡大]4バインドクエリで操作されるテーブルなどの列と、クライアントへ返される結果セットのバインド(関連付け)が行われます。5最適化クエリの解析結果として受け渡されたクエリツリーをもとに、クエリオプティマイザによってクエリ実行プランが生成されます。クエリオプティマイザの動作は、パフォーマンスチューニングの際にとても重要な意味を持つため、次節で詳細を説明します。6クエリ実行プラン生成(もしくは再利用)クエリ実行プランがプランキャッシュに存在する場合は、再利用が行われます。存在しない場合は、クエリオプティマイザによって生成されたコンパイル済みプランをもとに実行可能プランが生成されます。7リソース確保クエリ実行プランに基づいて、クエリを処理するために必要なリソースを確保します。結果セットの並べ替えが必要な場合は、並べ替え用のメモリの獲得を要求します。並列で処理されるべきクエリには、並列処理に必要な内部スレッドの獲得要求を行います。8実行クエリ実行プランに基づいたリソースの確保が完了すると、クエリの実行が開始されます。9クエリ実行プランの登録クエリ実行プランがプランキャッシュに存在しない場合は登録します。Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。NEW新着記事一覧を見るイベントイベントカレンダーを見る講座イベントカレンダーを見る「EnterpriseZine」(エンタープライズジン)は、翔泳社が運営する企業のIT活用とビジネス成長を支援するITリーダー向け専門メディアです。データテクノロジー/情報セキュリティ/システム運用の最新動向を中心に、企業ITに関する多様な情報をお届けしています。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。