|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 最 : [さい] 1. (n,pref) the most 2. the extreme ・ 最適 : [さいてき] 1. (adj-na,n) optimum 2. the most suitable ・ 化 : [か] (suf) action of making something
クエリ最適化(クエリさいてきか、)は、多くのデータベース管理システム (DBMS) の持つ機能であり、クエリ (データに対する問い合わせ) を実行する最も効率的な方法を決定する。クエリオプティマイザ(query optimizer)とも言う。クエリオプティマイザは、入力されたクエリについて考えられるクエリ実行計画群を評価し、どれが最も効率的か決定する。コストに基づいたクエリオプティマイザでは、個々の計画のコストを見積もり、最もコストの低い計画を選ぶ。コストはクエリ実行時コストであり、入出力(I/O)操作数、CPU時間、その他から決定する。評価されるクエリ実行計画群は、可能なアクセス経路(例えば、インデックス検索、シーケンシャル検索)と結合アルゴリズム(例えば、ソートマージ結合、ハッシュ結合、入れ子ループ)の組み合わせから生成される。探索空間は入力されたSQLクエリによっては非常に大きくなる可能性もある。 クエリ最適化をユーザーが直接操作することはできない。クエリがデータベースサーバ (DBMS) に対して発行され、パーサーが構文解析すると、その結果がクエリオプティマイザに送られ、クエリ最適化が行われる。 関係代数 (関係モデル)#問い合わせ最適化も参照。 == 実装 == クエリ最適化では、クエリ実行計画を「計画ノード」による木構造で表現することが多い。計画ノードにはクエリ実行に必要な1つの操作が格納されている。そのようなノードを木構造に配置すると、木の底から頂点に向かって中間結果が上がってくると見ることができる。各ノードには0個以上の子ノードがあり、それら子ノードの出力が親ノードの入力として使用される。例えば、結合ノードには2個の子ノードがあり、それぞれが結合の2つのオペランド (演算対象) となっている。一方、ソートノードの子ノードは1つである(ソートすべきオペランド)。葉の部分のノードはディスクを検索した結果を生み出し、例えばインデックス検索やシーケンシャル検索を行う。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「クエリ最適化」の詳細全文を読む スポンサード リンク
|