SQL Select語句完整的執行順序:
1、from子句組裝來自不同數據源的數據;
2、where子句基于指定的條件對記錄行進行篩選;
3、group by子句將數據劃分為多個分組;
4、使用聚集函數進行計算;
5、使用having子句篩選分組;
6、計算所有的表達式;
7、使用order by對結果集進行排序。
oracle 語句提高查詢效率的方法
1:.. where column in(select * from ... where ...);
2:... where exists (select 'X' from ...where ...);
第二種格式要遠比第一種格式的效率高。在Oracle中可以幾乎將所有的IN操作符子查詢改寫為使用EXISTS的子查詢
使用EXISTS,Oracle系統會首先檢查主查詢,然后運行子查詢直到它找到第一個匹配項,這就節省了時間
Oracle系統在執行IN子查詢時,首先執行子查詢,并將獲得的結果列表存放在在一個加了索引的臨時表中
選擇最有效率的表名順序(只在基于規則的優化器中有效)
ORACLE的解析器按照從右到左的順序處理FROM子句中的表名,因此FROM子句中寫在最后的表(基礎表 driving table)將被最先處理。在FROM子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。當ORACLE處理多個表時,會運用排序及合并的方式連接它們。首先,掃描第一個表(FROM子句中最后的那個表)并對記錄進行派序,然后掃描第二個表(FROM子句中最后第二個表),最后將所有從第二個表中檢索出的記錄與第一個表中合適記錄進行合并。
如果有3個以上的表連接查詢,那就需要選擇交叉表(intersection table)作為基礎表,交叉表是指那個被其他表所引用的表。
WHERE子句中的連接順序
ORACLE采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。
oracle select執行順序的詳解
2019-11-23 19:21oracle教程網 Oracle
本篇文章是對oracle select執行順序進行了詳細的分析介紹,需要的朋友參考下
延伸 · 閱讀
- 2022-03-08Linux下Select多路復用實現簡易聊天室示例
- 2022-03-07Oracle Linux 能否成為企業級 CentOS 的替代品?
- 2022-03-05Oracle VM VirtualBox 虛擬機硬盤擴容
- 2022-02-28oracle刪除超過N天數據腳本的方法
- 2022-02-25oracle重置序列從0開始遞增1
- 2022-02-24Oracle 觸發器trigger使用案例
- Oracle
詳解Oracle自定義異常示例
這篇文章主要介紹了詳解Oracle自定義異常示例的相關資料,需要的朋友可以參考下 ...
- Oracle
關于SQL執行計劃錯誤導致臨時表空間不足的問題
故障現象:臨時表空間不足的問題已經報錯過3次,客戶也煩了,前兩次都是同事添加5G的數據文件,目前已經達到40G,占用臨時表空間主要是distinct 和gro...
- Oracle
Oracle中簡單查詢、限定查詢、數據排序SQL語句范例和詳細注解
這篇文章主要介紹了Oracle中簡單查詢、限定查詢、數據排序SQL語句范例和詳細注解,對查詢語法一并做了介紹,需要的朋友可以參考下 ...
- Oracle
Oracle 12c Release 2 RAC 安裝 Oracle Linux 7
一、概述 本文主要闡述基于ASM 構建 Oracle 12c RAC數據庫的過程說明 1、系統版本要求 確保 Oracle Linux 版本為 6 或更高版本。 確保兩個節點的 Oracle Linux 內核版...
- Oracle
Oracle連接配置解讀
這篇文章主要介紹了Oracle連接配置解讀,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編...
- Oracle
關于Oracle多表連接,提高效率,性能優化操作
這篇文章主要介紹了關于Oracle多表連接,提高效率,性能優化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...
- Oracle
Oracle中的SUM用法講解
今天小編就為大家分享一篇關于Oracle中的SUM用法講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...
- Oracle
深入ORACLE遷移到MYSQL的總結分析
本篇文章是對ORACLE遷移到MYSQL進行了詳細的總結與分析,需要的朋友參考下 ...