自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle多表查詢優(yōu)化的代碼示例

數(shù)據(jù)庫(kù) Oracle
以下的文章主要介紹的是Oracle多表查詢優(yōu)化的實(shí)際應(yīng)用以及Oracle多表查詢優(yōu)化的實(shí)際應(yīng)用代碼的描述,以下就是正文的詳細(xì)描述。

如果你是Oracle多表查詢優(yōu)化方面的新手,對(duì)Oracle多表查詢優(yōu)化的相關(guān)實(shí)際應(yīng)用不是很了解的話,以下的文章會(huì)給你提供更全面的知識(shí)。以下就是文章的詳細(xì)內(nèi)容的介紹,望你會(huì)有所了解。

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

例如:

(低效,執(zhí)行時(shí)間156.3秒)

 

  1. SELECT …  
  2. FROM EMP E  
  3. WHERE SAL >; 50000  
  4. AND JOB = ‘MANAGER’  
  5. AND 25 < (SELECT COUNT(*) FROM EMP  
  6. WHERE MGR=E.EMPNO);  

 

(高效,執(zhí)行時(shí)間10.6秒)

 

  1. SELECT …  
  2. FROM EMP E  
  3. WHERE 25 < (SELECT COUNT(*) FROM EMP  
  4. WHERE MGR=E.EMPNO)  
  5. AND SAL >; 50000  
  6. AND JOB = ‘MANAGER’;  

 

重點(diǎn)關(guān)注3:SELECT子句中避免使用 ‘ * ‘ .重點(diǎn)關(guān)注

當(dāng)你想在SELECT子句中列出所有的COLUMN時(shí),使用動(dòng)態(tài)SQL列引用 ‘*’ 是一個(gè)方便的方法.不幸的是,這是一個(gè)非常低效的方法. 實(shí)際上,Oracle在解析的過(guò)程中, 會(huì)將’*’ 依次轉(zhuǎn)換成所有的列名, 這個(gè)工作是通過(guò)Oracle多表查詢數(shù)據(jù)字典完成的, 這意味著將耗費(fèi)更多的時(shí)間.

7. 減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù)

當(dāng)執(zhí)行每條SQL語(yǔ)句時(shí), Oracle在內(nèi)部執(zhí)行了許多工作: 解析SQL語(yǔ)句, 估算索引的利用率, 綁定變量 , 讀數(shù)據(jù)塊等等. 由此可見(jiàn), 減少訪問(wèn)數(shù)據(jù)庫(kù)的次數(shù) , 就能實(shí)際上減少Oracle的工作量.

例如,

以下有三種方法可以檢索出雇員號(hào)等于0342或0291的職員.

方法1 (***效)

 

  1. SELECT EMP_NAME , SALARY , GRADE  
  2. FROM EMP  
  3. WHERE EMP_NO = 342;  
  4. SELECT EMP_NAME , SALARY , GRADE  
  5. FROM EMP  
  6. WHERE EMP_NO = 291;  

 

方法2 (次低效)

 

  1. DECLARE  
  2. CURSOR C1 (E_NO NUMBER) IS  
  3. SELECT EMP_NAME,SALARY,GRADE  
  4. FROM EMP  
  5. WHERE EMP_NO = E_NO;  
  6. BEGIN  
  7. OPEN C1(342);  
  8. FETCH C1 INTO …,..,.. ;  
  9. OPEN C1(291);  
  10. FETCH C1 INTO …,..,.. ;  
  11. CLOSE C1;  
  12. END;  

 

以上的相關(guān)內(nèi)容就是對(duì)Oracle多表查詢優(yōu)化的介紹,望你能有所收獲。

【編輯推薦】

  1. Oracle數(shù)據(jù)庫(kù)里重復(fù)沒(méi)有用的數(shù)據(jù)如何刪除
  2. Oracle數(shù)據(jù)庫(kù)的重復(fù)數(shù)據(jù)刪除技術(shù)的優(yōu)勢(shì)體現(xiàn)
  3. Oracle存儲(chǔ)過(guò)程的用法簡(jiǎn)介
  4. Oracle to_char的用法描述
  5. Oracle 多表關(guān)聯(lián)如何更新多個(gè)字段
責(zé)任編輯:佚名 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-05-07 11:00:25

Oracle多表查詢

2010-10-28 16:42:04

oracle多表查詢

2010-11-23 11:44:10

MySQL多表聯(lián)合查詢

2010-04-12 09:26:52

Oracle查詢分頁(yè)

2011-08-16 16:37:40

Oracle數(shù)據(jù)庫(kù)樹(shù)形查詢根節(jié)點(diǎn)

2010-10-21 11:10:57

SQL Server查

2011-08-18 15:03:47

SQL Server多優(yōu)化方案

2010-04-15 14:39:56

Oracle創(chuàng)建表空間

2010-04-14 15:01:50

Oracle ASM

2010-04-21 13:31:11

Oracle時(shí)間

2010-11-22 16:12:54

MySQL多表更新

2010-04-15 14:12:20

Oracle 系統(tǒng)操作

2010-04-12 12:30:44

Oracle 安裝腳本

2017-09-05 09:02:06

Oraclenot null優(yōu)化

2010-04-23 17:20:34

Oracle創(chuàng)建

2010-06-02 17:46:54

MySQL 查詢緩存

2010-11-22 15:56:34

Mysql多表查詢

2010-10-14 14:28:03

Mysql多表查詢

2011-08-16 19:11:15

Oracle數(shù)據(jù)庫(kù)創(chuàng)建Schema

2010-04-09 18:02:31

Oracle創(chuàng)建
點(diǎn)贊
收藏

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