偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

四分鐘學(xué)會(huì)Oracle嵌套循環(huán)

開發(fā) 后端
這里介紹Oracle嵌套循環(huán),有時(shí)不遵守這個(gè)理論依據(jù),反而會(huì)獲得更好的效率。如果使用這種方法,決定使用哪個(gè)表作為驅(qū)動(dòng)表很重要。有時(shí)如果驅(qū)動(dòng)表選擇不正確,將會(huì)導(dǎo)致語句的性能很差、很差。

學(xué)習(xí)Oracle時(shí),你可能會(huì)遇到Oracle嵌套循環(huán)問題,這里將介紹Oracle嵌套循環(huán)問題的解決方法,在這里拿出來和大家分享一下。其實(shí),該連接過程就是一個(gè)2層Oracle嵌套循環(huán),所以外層循環(huán)的次數(shù)越少越好,這也就是我們?yōu)槭裁磳⑿”砘蚍祷剌^小row source的表作為驅(qū)動(dòng)表(用于外層循環(huán))的理論依據(jù)。

但是這個(gè)理論只是一般指導(dǎo)原則,因?yàn)樽裱@個(gè)理論并不能總保證使語句產(chǎn)生的I/O次數(shù)最少。有時(shí)不遵守這個(gè)理論依據(jù),反而會(huì)獲得更好的效率。如果使用這種方法,決定使用哪個(gè)表作為驅(qū)動(dòng)表很重要。有時(shí)如果驅(qū)動(dòng)表選擇不正確,將會(huì)導(dǎo)致語句的性能很差、很差。

Oracle嵌套循環(huán)(Nested Loops, NL):

a) 如果driving row source(外部表)比較小,并且在inner row source(內(nèi)部表)上有唯一索引,或有高選擇性非唯一索引時(shí),使用這種方法可以得到較好的效率。

b) NESTED LOOPS有其它連接方法沒有的的一個(gè)優(yōu)點(diǎn)是:可以先返回已經(jīng)連接的行,而不必等待所有的連接操作處理完才返回?cái)?shù)據(jù),這可以實(shí)現(xiàn)快速的響應(yīng)時(shí)間。

哈希連接(Hash Join, HJ):

a) 這種方法是在Oracle7后來引入的,使用了比較先進(jìn)的連接理論,一般來說,其效率應(yīng)該好于其它2種連接,但是這種連接只能用在CBO優(yōu)化器中,而且需要設(shè)置合適的hash_area_size參數(shù),才能取得較好的性能。

b) 在2個(gè)較大的row source之間連接時(shí)會(huì)取得相對(duì)較好的效率,在一個(gè)row source較小時(shí)則能取得更好的效率。

c) 只能用于等值連接中

笛卡兒乘積(Cartesian Product)

當(dāng)兩個(gè)row source做連接,但是它們之間沒有關(guān)聯(lián)條件時(shí),就會(huì)在兩個(gè)row source中做笛卡兒乘積,這通常由編寫代碼疏漏造成(即程序員忘了寫關(guān)聯(lián)條件)。笛卡爾乘積是一個(gè)表的每一行依次與另一個(gè)表中的所有行匹配。在特殊情況下我們可以使用笛卡兒乘積,如在星形連接中,除此之外,我們要盡量使用笛卡兒乘積,否則,自己想結(jié)果是什么吧!

注意在下面的語句中,在2個(gè)表之間沒有連接。

  1. SQL> explain plan for  
  2. select emp.deptno,dept,deptno  
  3. from emp,dept  
  4. Query Plan  
  5. SLECT STATEMENT [CHOOSE] Cost=5 
  6. MERGE JOIN CARTESIAN  
  7. TABLE ACCESS FULL DEPT  
  8. SORT JOIN  
  9. TABLE ACCESS FULL EMP 

CARTESIAN關(guān)鍵字指出了在2個(gè)表之間做笛卡爾乘積。假如表emp有n行,dept表有m行,笛卡爾乘積的結(jié)果就是得到n * m行結(jié)果。

責(zé)任編輯:佚名 來源: 博客
相關(guān)推薦

2017-09-09 13:29:22

ARCoreAndroid移動(dòng)設(shè)備

2009-11-06 14:01:15

Visual Stud

2017-09-13 09:15:28

蘋果iPhone8

2023-06-28 07:45:51

Java線程狀態(tài)

2024-08-05 09:30:00

2022-10-26 13:52:00

機(jī)器人谷歌

2021-12-21 15:56:13

SolarWinds

2009-11-10 17:27:01

Oracle全表掃描

2022-03-08 08:39:22

gRPC協(xié)議云原生

2023-12-21 12:03:14

人工智能GPT驅(qū)動(dòng)Coscientis

2009-11-20 17:06:49

Oracle數(shù)據(jù)庫字符

2021-07-15 06:43:11

Bash調(diào)試腳本

2020-05-22 10:20:27

Shiro架構(gòu)字符串

2009-11-16 10:53:30

Oracle Hint

2016-12-22 21:47:04

SEDLinuxUnix

2018-11-28 11:20:53

Python函數(shù)式編程編程語言

2009-10-27 17:22:27

2009-11-17 14:50:50

Oracle調(diào)優(yōu)

2009-10-22 16:18:19

Oracle表空間

2019-07-18 16:32:06

Python函數(shù)數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)