a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

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

2024-08-29 13:55:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
SQL Select語(yǔ)句完整的執(zhí)行順序:
1、from子句組裝來(lái)自不同數(shù)據(jù)源的數(shù)據(jù);
2、where子句基于指定的條件對(duì)記錄行進(jìn)行篩選;
3、group by子句將數(shù)據(jù)劃分為多個(gè)分組;
4、使用聚集函數(shù)進(jìn)行計(jì)算;
5、使用having子句篩選分組;
6、計(jì)算所有的表達(dá)式;
7、使用order by對(duì)結(jié)果集進(jìn)行排序。

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

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

WHERE子句中的連接順序
ORACLE采用自下而上的順序解析WHERE子句,根據(jù)這個(gè)原理,表之間的連接必須寫(xiě)在其他WHERE條件之前,那些可以過(guò)濾掉最大數(shù)量記錄的條件必須寫(xiě)在WHERE子句的末尾。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产三级精品三级 | 国产小视频在线观看 | 一区二区精品在线 | 中文字幕日韩在线 | 欧美小电影 | 精品九九 | 91精品一区 | 91高清免费 | 久久99精品久久久久久久久久久久 | 五月天色视频 | 久久精品99 | 97中文字幕| 国产九九精品 | 久久亚洲高清 | 午夜精品久久久久久久男人的天堂 | 中文字幕亚洲一区二区三区 | 日韩一二三区视频 | 色噜噜视频 | 91免费看| 国产精品久久久久久 | 最新日韩一区 | 国产精品免费一区 | 亚洲 中文 欧美 日韩 在线观看 | 国产精品久久久久久久久免费高清 | av免费网站在线观看 | 欧美日日| 极品少妇一区二区三区精品视频 | 国产一级免费视频 | 国产精品三级在线 | 亚洲精品66 | 亚洲精品v| 嫩草影院网站入口 | 日本福利一区二区 | 国产成人精品一区二 | 精品视频久久 | 日本免费三片免费观看 | 精品久久久久久久人人人人传媒 | 九九热精品视频在线 | 色婷婷在线视频 | 欧美 日韩 亚洲 一区 | 亚洲福利一区 |