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

討論Oracle Exists用法

數(shù)據(jù)庫(kù) Oracle
這里介紹用Oracle Exists替換DISTINCT,當(dāng)提交一個(gè)包含一對(duì)多表信息(比如部門表和雇員表)的查詢時(shí),避免在SELECT子句中使用DISTINCT。

學(xué)習(xí)Oracle時(shí),經(jīng)常會(huì)遇到Oracle Exists問(wèn)題,這里將介紹Oracle Exists問(wèn)題的解決方法。Oracle使用了一個(gè)復(fù)雜的自平衡B-tree結(jié)構(gòu)。通常,通過(guò)索引查詢數(shù)據(jù)比全表掃描要快。當(dāng) Oracle找出執(zhí)行查詢和Update語(yǔ)句的最好路徑時(shí),Oracle優(yōu)化器將使用索引。同樣在聯(lián)結(jié)多個(gè)表時(shí)使用索引也能夠提高效率。

另一個(gè)使用索引的好處是,他提供了主鍵(primary key)的唯一性驗(yàn)證。那些LONG或LONG RAW數(shù)據(jù)類型, 您能夠索引幾乎任何的列。通常, 在大型表中使用索引特別有效. 當(dāng)然,您也會(huì)發(fā)現(xiàn), 在掃描小表時(shí),使用索引同樣能提高效率。

雖然使用索引能得到查詢效率的提高,但是我們也必須注意到他的代價(jià)。索引需要空間來(lái)存儲(chǔ),也需要定期維護(hù), 每當(dāng)有記錄在表中增減或索引列被修改時(shí), 索引本身也會(huì)被修改。這意味著每條記錄的INSERT,DELETE ,UPDATE將為此多付出4、5次的磁盤I/O 。因?yàn)樗饕枰~外的存儲(chǔ)空間和處理,那些不必要的索引反而會(huì)使查詢反應(yīng)時(shí)間變慢。定期的重構(gòu)索引是有必要的:

  1. ALTER INDEX <INDEXNAME> REBUILD <TABLESPACENAME> 

用Oracle Exists替換DISTINCT:

當(dāng)提交一個(gè)包含一對(duì)多表信息(比如部門表和雇員表)的查詢時(shí),避免在SELECT子句中使用DISTINCT。一般能夠考慮用Oracle EXIST替換,Oracle Exists使查詢更為迅速,因?yàn)镽DBMS核心模塊將在子查詢的條件一旦滿足后,立即返回結(jié)果。例子:

  1. SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D , EMP E WHERE D.DEPT_NO = E.DEPT_NO 
  2. SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE Exists 
    ( SELECT ‘X' FROM EMP E WHERE 
    E.DEPT_NO = D.DEPT_NO); 

◆SQL語(yǔ)句用大寫的;因?yàn)镺racle總是先解析SQL語(yǔ)句,把小寫的字母轉(zhuǎn)換成大寫的再執(zhí)行。
◆在Java代碼中盡量少用連接符“+”連接字符串。
◆避免在索引列上使用NOT通常,我們要避免在索引列上使用NOT, NOT會(huì)產(chǎn)生在和在索引列上使用函數(shù)相同的影響。
◆當(dāng)Oracle“碰到”NOT,他就會(huì)停止使用索引轉(zhuǎn)而執(zhí)行全表掃描。
◆避免在索引列上使用計(jì)算。WHERE子句中,假如索引列是函數(shù)的一部分。優(yōu)化器將不使用索引而使用全表掃描。

【編輯推薦】

  1. 詳談Oracle LogMiner工具
  2. 揭開Oracle LogMiner之謎
  3. 簡(jiǎn)單描述Oracle Clob類型
  4. 概述Oracle 10g服務(wù)器
  5. 簡(jiǎn)介Oracle xmltype
責(zé)任編輯:佚名 來(lái)源: 計(jì)世網(wǎng)
相關(guān)推薦

2009-11-13 16:53:12

Oracle文檔

2009-11-20 15:19:29

Oracle Agil

2009-11-17 15:59:25

Oracle物化視圖

2010-05-04 18:14:50

Oracle 性能工具

2009-11-20 13:29:59

Oracle數(shù)據(jù)庫(kù)恢復(fù)

2010-04-23 09:13:08

Oracle In-M

2010-10-27 15:03:47

Oracle with

2010-04-28 17:29:07

Oracle字符集

2010-04-29 16:06:47

Oracle rown

2010-10-25 14:28:53

oracle trun

2010-10-25 16:52:48

oracle管道函數(shù)

2011-04-12 11:32:31

Oraclerownum用法

2010-04-30 11:58:45

Oracle sequ

2010-04-28 14:46:38

Oracle Copy

2010-04-26 15:30:45

Oracle join

2010-04-16 16:41:53

rownum用法

2010-04-28 14:56:02

Oracle sqlp

2010-04-28 16:30:52

Oracle case

2010-04-08 16:41:29

Oracle存儲(chǔ)過(guò)程

2010-04-30 10:47:26

Oracle Nvl函
點(diǎn)贊
收藏

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