成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

閑談Oracle執行計劃的步驟順序

數據庫 Oracle
這里介紹Oracle執行計劃中的步驟不是按照它們編號的順序來實現的:Oracle首先實現樹結構圖形里作為葉子出現的那些步驟。

經過長時間學習Oracle,于是和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會你更多東西。Oracle執行計劃的每一步返回一組行,它們或者為下一步所使用,或者在最后一步時返回給發出SQL語句的用戶或應用。由每一步返回的一組行叫做行源(row source)。下面得樹狀圖顯示了從一步到另一步行數據的流動情況。每步的編號反映了在你觀察Oracle執行計劃時所示步驟的順序(如何觀察Oracle執行計劃將被簡短地說明)。一般來說這并不是每一步被執行的先后順序。

Oracle執行計劃的每一步或者從數據庫中檢索行,或者接收來自一個或多個行源的行數據作為輸入:

由紅色字框指出的步驟從數據庫中的數據文件中物理檢索數據。這種步驟被稱之為存取路徑,后面會詳細介紹在Oracle可以使用的存取路徑:
◆第3步和第6步分別的從EMP表和SALGRADE表讀所有的行。
◆第5步在PK_DEPTNO索引中查找由步驟3返回的每個DEPTNO值。它找出與DEPT表中相關聯的那些行的ROWID。
◆第4步從DEPT表中檢索出ROWID為第5步返回的那些行。

由黑色字框指出的步驟在行源上操作,如做2表之間的關聯,排序,或過濾等操作,后面也會給出詳細的介紹:
◆第2步實現嵌套的循環操作(相當于C語句中的嵌套循環),接收從第3步和第4步來的行源,把來自第3步源的每一行與它第4步中相應的行連接在一起,返回結果行到第1步。
◆第1步完成一個過濾器操作。它接收來自第2步和第6步的行源,消除掉第2步中來的,在第6步有相應行的那些行,并將來自第2步的剩下的行返回給發出語句的用戶或應用。

實現Oracle執行計劃步驟的順序

Oracle執行計劃中的步驟不是按照它們編號的順序來實現的:Oracle首先實現樹結構圖形里作為葉子出現的那些步驟(例如步驟3、5、6)。由每一步返回的行稱為它下一步驟的行源。然后Oracle實現父步驟。

舉例來說,為了執行圖5-1中的語句,Oracle以下列順序實現這些步驟:
首先,Oracle實現步驟3,并一行一行地將結果行返回給第2步。
對第3步返回的每一行,Oracle實現這些步驟:
◆Oracle實現步驟5,并將結果ROWID返回給第4步。
◆Oracle實現步驟4,并將結果行返回給第2步。
◆Oracle實現步驟2,將接受來自第3步的一行和來自第4步的一行,并返回給第1步一行。
◆Oracle實現步驟6,如果有結果行的話,將它返回給第1步。
◆Oracle實現步驟1,如果從步驟6返回行,Oracle將來自第2步的行返回給發出SQL語句的用戶。

注意Oracle對由第3步返回的每一行實現步驟5,4,2,6一次。許多父步驟在它們能執行之前只需要來自它們子步驟的單一行。對這樣的父步驟來說,只要從子步驟已返回單一行時立即實現父步驟(可能還有Oracle執行計劃的其余部分)。如果該父步驟的父步驟同樣可以通過單一行返回激活的話,那么它也同樣被執行。所以,執行可以在樹上串聯上去,可能包含Oracle執行計劃的余下部分。對于這樣的操作,可以使用first_rows作為優化目標以便于實現快速響應用戶的請求。

對每個由子步驟依次檢索出來的每一行,Oracle就實現父步驟及所有串聯在一起的步驟一次。對由子步驟返回的每一行所觸發的父步驟包括表存取,索引存取,嵌套的循環連接和過濾器。

有些父步驟在它們被實現之前需要來自子步驟的所有行。對這樣的父步驟,直到所有行從子步驟返回之前Oracle不能實現該父步驟。這樣的父步驟包括排序,排序一合并的連接,組功能和總計。對于這樣的操作,不能使用first_rows作為優化目標,而可以用all_rows作為優化目標,使該中類型的操作耗費的資源最少。

有時語句執行時,并不是象上面說的那樣一步一步有先有后的進行,而是可能并行運行,如在實際環境中,3、5、4步可能并行運行,以便取得更好的效率。從上面的樹型圖上,是很難看出各個操作執行的先后順序,而通過Oracle生成的另一種形式的Oracle執行計劃,則可以很容易的看出哪個操作先執行,哪個后執行,這樣的Oracle執行計劃是我們真正需要的,后面會給出詳細說明。現在先來看一些預備知識。

【編輯推薦】

  1. ORACLE執行計劃的一些基本概念
  2. 利用Oracle執行計劃機制提高查詢性能
  3. 簡單描述Oracle編碼SQL
  4. 代碼講解Oracle可選擇性
  5. Oracle管理工具Oracle SQL Handler功能一覽
責任編輯:佚名 來源: 博客園
相關推薦

2010-04-16 09:27:18

Ocacle執行計劃

2009-11-13 16:28:02

Oracle生成執行計

2009-11-18 17:05:47

捕獲Oracle SQ

2011-08-18 14:10:51

Oracle不走索引

2011-09-14 17:03:17

數據庫執行計劃解析

2010-10-27 15:26:42

Oracle執行計劃

2021-12-13 22:15:29

SQLOracle共享池

2017-09-22 11:01:00

Oracle數據庫中直方圖

2015-04-22 14:17:45

SQL SERVERMSSQL SERVE緩沖區

2021-03-17 09:35:51

MySQL數據庫explain

2023-09-21 10:55:51

MysqlSQL語句

2021-05-28 10:46:36

MySQL執行計劃

2020-09-15 08:44:57

MySQL慢日志SQL

2022-08-15 15:09:26

SQL數據庫MySQL

2024-09-12 15:16:14

2022-08-08 08:03:44

MySQL數據庫CBO

2022-02-15 07:36:21

SQLEXPLAIN數據庫

2010-09-07 09:54:41

DB2數據庫

2019-11-28 08:31:21

Oracle數據庫索引

2021-09-07 10:43:25

EverDB分布式執行
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国精产品一品二品国精在线观看 | 国产在线91 | 亚洲成人av| 国产性网 | 久久精品欧美一区二区三区不卡 | 黄色免费在线观看网站 | 999久久久久久久久6666 | 99视频免费在线观看 | 国精产品一品二品国精在线观看 | 国产精品亚洲成在人线 | 亚洲成人久久久 | 国产精品激情在线 | 国产精品久久a | a级大毛片 | 国产一区91精品张津瑜 | 一区二区三区在线免费观看 | 欧美成人精品 | 亚洲乱码国产乱码精品精的特点 | 日本电影韩国电影免费观看 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 在线观看av免费 | 国产丝袜一区二区三区免费视频 | 成人不卡| av一级久久 | 成人福利影院 | 成人免费一级 | a级性视频 | 精品国产一二三区 | 不卡在线一区 | 99精品在线 | 日本a∨精品中文字幕在线 亚洲91视频 | 国产精品视频在线播放 | 日日夜夜天天 | 久久免费小视频 | 人人鲁人人莫人人爱精品 | 巨大荫蒂视频欧美另类大 | 国产高清在线精品一区二区三区 | 久久99精品国产自在现线小黄鸭 | 在线一级片| 欧美一级二级三级视频 | 欧美 日韩 国产 在线 |