【SQL】SQL文が実行されるまでの工程

 ■ はじめに

 * DBパフォーマンスを行うためには、
   まず、どのような工程でSQL文が実行されるかを知ることが重要となってくる

目次

【1】SQL文が実行されるまでの工程
 1)SQL文の解析処理(PARSE)
 2)SQL文の書き換え
 3)実行プランの作成
【3】クエリ・オプティマイザ
 1)オプティマイザのモード

 【1】SQL文が実行されるまでの工程

http://itpro.nikkeibp.co.jp/article/COLUMN/20060111/227097/thumb_200_zu1.jpg

1)SQL文の解析処理(PARSE)
2)SQL文の書き換え
3)実行プランの作成

http://itpro.nikkeibp.co.jp/article/COLUMN/20060111/227100/

 1)SQL文の解析処理(PARSE)

入力されたSQL文に対して、以下のようなチェックを行う。
 * SQL文が文法的に正しいかどうかをチェック
 * 文の構造を把握
 * SQL文に指定したテーブルやフィールドが実際に存在するかどうかをチェック
 * ユーザーがそれらに対するアクセス権限を持っているかどうかをチェック

2)SQL文の書き換え

 * SQL文をより高速に実行できるように書き換える

3)実行プランの作成

実行プランとは?

 * SQLの結果を得るために、
 その過程のアクセス方法や順番を示したもの。
 →つまり、SQL文をどのように処理するのかを表したもの。

【2】クエリ・オプティマイザ

 * クエリ・オプティマイザ
 (Query Optimizer. Optimization=最適化. 以下、オプティマイザ)は、
   入力されたクエリについて、考えられる個々の実行計画のコストを見積もり、
   最もコストの低い計画を選ぶ機能

1)オプティマイザのモード

a)オプティマイザのモード

データの状態にかかわらず、規定されたルールに基づいて、
実行プランを生成する

b)コストベース

統計情報を基にして、
実行されるSQL文の処理にかかるコストを判断し、
コストが最小となる実行プランを生成する

 関連記事

パフォーマンスの良いSQLを記述 ~全般編~
https://dk521123.hatenablog.com/entry/2010/08/06/110122