濮阳杆衣贸易有限公司

主頁 > 知識庫 > oracle select執(zhí)行順序的詳解

oracle select執(zhí)行順序的詳解

熱門標(biāo)簽:word地圖標(biāo)注方向 美圖秀秀地圖標(biāo)注 征服者火車站地圖標(biāo)注 開封智能外呼系統(tǒng)廠家 阿爾巴尼亞地圖標(biāo)注app 百度地圖標(biāo)注素材 征服眼公司地圖標(biāo)注 人工智能地圖標(biāo)注自己能做嗎 外呼線路外顯本地號碼
SQL Select語句完整的執(zhí)行順序:
1、from子句組裝來自不同數(shù)據(jù)源的數(shù)據(jù);
2、where子句基于指定的條件對記錄行進(jìn)行篩選;
3、group by子句將數(shù)據(jù)劃分為多個分組;
4、使用聚集函數(shù)進(jìn)行計算;
5、使用having子句篩選分組;
6、計算所有的表達(dá)式;
7、使用order by對結(jié)果集進(jìn)行排序。

oracle 語句提高查詢效率的方法
1:.. where column in(select * from ... where ...);
2:... where exists (select 'X' from ...where ...);
第二種格式要遠(yuǎn)比第一種格式的效率高。在Oracle中可以幾乎將所有的IN操作符子查詢改寫為使用EXISTS的子查詢
使用EXISTS,Oracle系統(tǒng)會首先檢查主查詢,然后運(yùn)行子查詢直到它找到第一個匹配項(xiàng),這就節(jié)省了時間
Oracle系統(tǒng)在執(zhí)行IN子查詢時,首先執(zhí)行子查詢,并將獲得的結(jié)果列表存放在在一個加了索引的臨時表中

選擇最有效率的表名順序(只在基于規(guī)則的優(yōu)化器中有效)
ORACLE的解析器按照從右到左的順序處理FROM子句中的表名,因此FROM子句中寫在最后的表(基礎(chǔ)表 driving table)將被最先處理。在FROM子句中包含多個表的情況下,你必須選擇記錄條數(shù)最少的表作為基礎(chǔ)表。當(dāng)ORACLE處理多個表時,會運(yùn)用排序及合并的方式連接它們。首先,掃描第一個表(FROM子句中最后的那個表)并對記錄進(jìn)行派序,然后掃描第二個表(FROM子句中最后第二個表),最后將所有從第二個表中檢索出的記錄與第一個表中合適記錄進(jìn)行合并。
如果有3個以上的表連接查詢,那就需要選擇交叉表(intersection table)作為基礎(chǔ)表,交叉表是指那個被其他表所引用的表。

WHERE子句中的連接順序
ORACLE采用自下而上的順序解析WHERE子句,根據(jù)這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數(shù)量記錄的條件必須寫在WHERE子句的末尾。

標(biāo)簽:孝感 海北 淮南 宜春 泰安 六安 酒泉 葫蘆島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《oracle select執(zhí)行順序的詳解》,本文關(guān)鍵詞  oracle,select,執(zhí)行,順序,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《oracle select執(zhí)行順序的詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于oracle select執(zhí)行順序的詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    江孜县| 略阳县| 砚山县| 山阴县| 信宜市| 罗田县| 竹溪县| 织金县| 张家界市| 温泉县| 苍山县| 平乡县| 二连浩特市| 肥东县| 廊坊市| 武隆县| 咸丰县| 正镶白旗| 青阳县| 昌宁县| 新平| 扬中市| 武鸣县| 五大连池市| 新竹市| 岢岚县| 青海省| 东乡族自治县| 钟祥市| 潜山县| 铜山县| 成安县| 游戏| 宜宾市| 洞口县| 华亭县| 永丰县| 曲松县| 赤城县| 连江县| 沅江市|