邏輯查詢處理分哪些階段

 1.FROM:對FROM子句中前兩個表執行笛卡爾積 生成虛擬表VT1

 

2.ON:對VT1表應用ON篩選器 只有滿足<join_condition>爲真的行才被插入VT2

 

3.OUTER(JOIN):如果指定了OUTER JOIN 保留表(preserved table)中未找到的行將行作爲外部行添加到VT2 生成T3

如果FROM包含兩個以上表 則對上一個聯結生成的結果表和下一個表重複執行步驟1和步驟3 直接結束

 

4.WHERE:對VT3應用WHERE篩選器 只有使<where_condition>爲TRUE的行才被插入VT4

 

5.GROUP BY:按GROUP BY子句中的列列表 對VT4中的行分組 生成VT5

 

6.CUBE|ROLLUP:把超組(Supergroups)插入VT6 生成VT6

 

7.HAVING:對VT6應用HAVING篩選器 只有使<having_condition>爲TRUE的組才插入VT7

 

8.SELECT:處理SELECT列表 產生VT8

 

9.DISTINCT:將重複的行從VT8中去除 產生VT9

 

10.ORDER BY:將VT9的行按ORDER BY子句中的列列表排序 生成一個遊標 VC10

 

11.TOP:從VC10的開始處選擇指定數量或比例的行 生成VT11 並返回調用者

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章