SQLサーバの実行順序

調査ヤンシェンS QL Severのの  実行順序

Sqlseverコードが押していない処理され、処理された句が最初のSELECT文を表示されて、最後に処理最初のFROM文節で、各ステップは、仮想テーブルを生成します符号化順序を、仮想テーブルは、次の工程で使用されます入力。

(8)を選択し(9)DISTINCT(11)<トップ民> <選択リスト>

(1)[left_table] FROM

(3)<join_type> JOIN <right_table>

(2)<join_condition> ON

(4)ここで、<where_condition>

(5)GROUP BY <group_by_list>

(6)<CUBE WITH | ロールアップ>

(7)を有する<having_condition>

BY(10)ORDER <order_by_list>

 

 

 

論理的なクエリ処理の段階について

1.FROM:上の FROM句前の2つの表には、デカルト積(デカルト積)(クロスカップリング)を行う仮想テーブル生成する VT1を

2.ON:へのフィルタVT1アプリケーションON。のみ<join_condition>作る人の真の行のみが挿入された VT2を。

3.OUTER(JOIN)として  指定されている場合 OUTER JOINを(相対クロス内部結合に参加するか()、予約テーブル(保存テーブル:LEFT OUTERは予約テーブルとしてマークされた左テーブルをJOIN、右外側、右テーブルに参加予約済みとしてマーク表完全外部)は、2つのテーブルが予約テーブルとしてマークされている参加一致が外部ロウ行が、VT2に追加されるように発見された生成 VT3を。場合、FROM句は、2つの以上のテーブルを含む結果を生成するように結合されますテーブルと次のテーブルを繰り返し、手順完全に処理されるすべてのテーブルまで1〜3を。

4.WHERE: VT3アプリケーションをフィルタリングするWHERE。<where_condition>は、ときにのみする挿入を行VT4の唯一の本当でした。

:BY 5.GROUP によってグループにGROUP BY句の列リストの行VT4、生成 VT5を。

6.CUBE | ROLLUP:スーパーグループ(Suppergroups)を挿入 VT5を、生成 VT6を。

7.HAVING:のフィルターVT6アプリケーションを有しています。<having_condition>場合のみ、されて trueに設定VT7を挿入されます。

8.SELECT:加工、SELECTリストを生成する VT8を。

9.DISTINCT:から行を複製して除去VT8 生成 VT9を。

10.ORDER BYは:VT9行がカーソル(VC10)を生成し、ORDER BY節内の列のリストをソート。

11.TOP:から選択し、指定した数またはパーセント行のVC10の先頭に、テーブルを生成する VT11を、呼び出し元に戻ります。

注:ステップ 10、によれば、行が返されるステップのリストをソートするORDER BY節の列カーソル返す。VC10をこのステップは、最初で唯一のステップで使用することができている SELECT列リストステップエイリアス。このステップは、それが有効なテーブルを返さない、他のステップは異なっているが、カーソルを返します。SQLは、集合論に基づいています。それはメンバーの唯一の論理的なセットで、行の事前ソートセットではありません、オーダーのメンバーは重要ではありません。ソートテーブルのクエリは、特定の物理的な組織の行の順序を含むオブジェクトを返すことができます。このオブジェクトは、ANSIカーソルと呼ばれています。このステップでは、の正しい理解を理解することである SQLの基礎を。

このステップは、テーブルを返す(ただし、カーソルを返す)しないため、使用するテーブル式として使用することができないクエリのORDER BY句。表式であっビュー、インラインテーブル値関数、サブクエリ、および共通式派生テーブル。所望の物理的レコードを与えるために、クライアント・アプリケーションに戻されなければならない結果。

おすすめ

転載: www.cnblogs.com/zhangdashao/p/11443198.html