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

Oracle數(shù)據(jù)庫(kù)一些不常見但很重要的使用技巧總結(jié)篇

數(shù)據(jù)庫(kù) Oracle
本文主要介紹了Oracle數(shù)據(jù)庫(kù)的一些使用技巧的總結(jié),這些技巧可能我們不常見,但是確實(shí)非常有用的,希望能對(duì)各位有所幫助。

Oracle數(shù)據(jù)庫(kù)使用過(guò)程中,有一些技巧是使用過(guò)程中需要去了解和掌握的,掌握這些技巧我們?cè)谝院笫褂脭?shù)據(jù)庫(kù)的過(guò)程中就可以避免走很多彎路,提高查詢效率。本文主要介紹一下七點(diǎn)技巧,希望能對(duì)各位有所幫助,接下來(lái)我們就一一介紹。

使用技巧:

1. procedure和function中的select后面不要跟變量,否則會(huì)極大的波及SQL效率。

2. TRUNCATE 在procedure中無(wú)法利用,可寫成:

 

  1. EXECUTE IMMEDIATE 'truncate table smic_rtd_bullet_lot_tmp'; 

 

3. 當(dāng)運(yùn)行DML(數(shù)據(jù)壟斷語(yǔ)言,增刪改查)語(yǔ)句時(shí),PL/SQL敞開一個(gè)內(nèi)建游標(biāo)并處理收獲,游標(biāo)是維護(hù)查詢收獲的內(nèi)存中的一個(gè)區(qū)域,游標(biāo)在運(yùn)行DML語(yǔ)句時(shí)敞開,告終后關(guān)閉。隱式游標(biāo)只利用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三個(gè)屬性。SQL%FOUND, SQL%NOTFOUND是布爾值,SQL%ROWCOUNT是整數(shù)值。告終循環(huán)時(shí)能夠此作為退出循環(huán)的推斷規(guī)范。

4. 為了不重復(fù)解析雷同的SQL語(yǔ)句,在第順次解析爾后,ORACLE將SQL語(yǔ)句儲(chǔ)藏在內(nèi)存中。這塊位于系統(tǒng)大局區(qū)域SGA(system global area)的分享池(shared buffer pool)中的內(nèi)存能夠被所有的數(shù)據(jù)庫(kù)用戶分享。因而,當(dāng)你厲行一個(gè)SQL語(yǔ)句(有時(shí)被稱為一個(gè)游標(biāo))時(shí),萬(wàn)一它和之前的厲行過(guò)的語(yǔ)句全面雷同,ORACLE就能很快獲得曾經(jīng)被解析的語(yǔ)句以及良好的厲行路徑。分享的語(yǔ)句定然中意三個(gè)條件:

a. 字符級(jí)的比擬:目前被厲行的語(yǔ)句和分享池中的語(yǔ)句定然全面雷同。包括所有的空格和字母大小寫。

b. 兩個(gè)語(yǔ)句所指的對(duì)象定然全面雷同。例如兩個(gè)用戶對(duì)于統(tǒng)一個(gè)表,一個(gè)是table owner,一個(gè)是引用同義詞,那么是無(wú)法SQL分享的。

c. 兩個(gè)SQL語(yǔ)句中定然利用雷同的名字的綁定變量。凡是變量名字雷同,即便在運(yùn)行時(shí),賦于不同的綁定變量雷同的值也是能夠的。

統(tǒng)一SQL在一個(gè)session多處利用,萬(wàn)一多次改變,經(jīng)常因?yàn)榭崭窈妥帜复笮懖唤y(tǒng)一導(dǎo)致SQL未曾分享。利用 WITH a AS (SELECT * FROM ……) 將查詢命名為a,爾后能夠?qū)當(dāng)做SQL利用,能夠確保順次解析多次利用,能夠長(zhǎng)進(jìn)效率。

5. 凡是有可能,在過(guò)程中盡量多利用COMMIT,這么過(guò)程的功能獲得長(zhǎng)進(jìn),需求也會(huì)因?yàn)镃OMMIT所釋放的資源而收縮:

COMMIT所釋放的資源:

a. 回滾段上用于復(fù)如數(shù)據(jù)的消息。

b. 被過(guò)程語(yǔ)句獲得的鎖。

c. redo log buffer 中的空間。

d. ORACLE為管教上述3種資源中的內(nèi)部花費(fèi)。

在利用COMMIT時(shí)定然要當(dāng)心到事務(wù)的全面性,切實(shí)中效率和事務(wù)全面性經(jīng)常是魚和熊掌不可得兼。

6. 穿越內(nèi)部函數(shù)長(zhǎng)進(jìn)SQL效率。

 

  1. SELECT H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC,COUNT(*)  
  2.  
  3. FROM HISTORY_TYPE T,EMP E,EMP_HISTORY H  
  4.  
  5. WHERE H.EMPNO = E.EMPNO  
  6.  
  7. AND H.HIST_TYPE = T.HIST_TYPE  
  8.  
  9. GROUP BY H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC; 

 

穿越調(diào)用下面的函數(shù)能夠長(zhǎng)進(jìn)效率。

 

  1. FUNCTION LOOKUP_HIST_TYPE(TYP IN NUMBER) RETURN VARCHAR2  
  2.  
  3. AS  
  4.  
  5. TDESC VARCHAR2(30);  
  6.  
  7. CURSOR C1 IS  
  8.  
  9. SELECT TYPE_DESC  
  10.  
  11. FROM HISTORY_TYPE  
  12.  
  13. WHERE HIST_TYPE = TYP;  
  14.  
  15. BEGIN  
  16.  
  17. OPEN C1;  
  18.  
  19. FETCH C1 INTO TDESC;  
  20.  
  21. CLOSE C1;  
  22.  
  23. RETURN (NVL(TDESC,尼康鏡頭’?’));  
  24.  
  25. END;  
  26.  
  27. FUNCTION LOOKUP_EMP(EMP IN NUMBER) RETURN VARCHAR2  
  28.  
  29. AS  
  30.  
  31. ENAME VARCHAR2(30);  
  32.  
  33. CURSOR C1 IS  
  34.  
  35. SELECT ENAME  
  36.  
  37. FROM EMP  
  38.  
  39. WHERE EMPEMPNO=EMP;  
  40.  
  41. BEGIN  
  42.  
  43. OPEN C1;  
  44.  
  45. FETCH C1 INTO ENAME;  
  46.  
  47. CLOSE C1;  
  48.  
  49. RETURN (NVL(ENAME,’?’));  
  50.  
  51. END;  
  52.  
  53. SELECT H.EMPNO,嬰兒奶粉排行榜LOOKUP_EMP(H.EMPNO),  
  54.  
  55. H.HIST_TYPE,LOOKUP_HIST_TYPE(H.HIST_TYPE),COUNT(*)  
  56.  
  57. FROM EMP_HISTORY H  
  58.  
  59. GROUP BY H.EMPNO , H.HIST_TYPE; 

 

許多人適應(yīng)性想用一個(gè)SQL寫出必需的數(shù)據(jù),殊不知混雜的SQL經(jīng)常獻(xiàn)身了厲行效率。 能夠掌握上面的利用函數(shù)處理問(wèn)題的措施在切實(shí)工作中是極其故含義的。

7. 通常情形下,用UNION輪換WHERE子句中的OR將會(huì)起到較好的收獲。對(duì)索引列利用OR將造成全表掃描。當(dāng)心,以上法定只針對(duì)多個(gè)索引列管用。萬(wàn)一有column未曾被索引,查詢效率可能會(huì)因?yàn)槟阄丛駬馩R而減退。

關(guān)于Oracle數(shù)據(jù)庫(kù)的使用技巧就介紹到這里,如果您想了解更多關(guān)于Oracle數(shù)據(jù)庫(kù)的知識(shí),不妨看一下這里的文章:http://database.51cto.com/oracle/,相信會(huì)給各位帶來(lái)收獲的!

【編輯推薦】

  1. 談一談兼容Oracle和DB2開發(fā)時(shí)的注意事項(xiàng)
  2. 用mysqldumpslow分析執(zhí)行較慢的SQL語(yǔ)句
  3. 在SQL觸發(fā)器或存儲(chǔ)過(guò)程中獲取登錄用戶信息
  4. 局域網(wǎng)所有機(jī)器都能連接MySQL數(shù)據(jù)庫(kù)的設(shè)置命令
  5. 讓SQL Server Management Studio直接連接數(shù)據(jù)庫(kù)
責(zé)任編輯:趙鵬 來(lái)源: 網(wǎng)易博客
相關(guān)推薦

2011-07-05 11:24:52

SQL語(yǔ)句索引

2011-07-22 09:58:18

Oracle數(shù)據(jù)庫(kù)優(yōu)化策略

2019-10-18 09:25:45

Python蘋果公司算法

2011-08-01 13:59:22

Oracle數(shù)據(jù)庫(kù)命名空間

2009-09-17 10:10:10

Oracle學(xué)習(xí)

2011-07-29 15:58:53

SGAOracle

2017-04-19 11:15:01

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

2010-09-07 11:28:15

SQL語(yǔ)句

2011-03-10 13:19:47

Oracle數(shù)據(jù)庫(kù)

2009-08-13 09:49:16

C#關(guān)鍵字

2011-07-12 09:47:53

WebService

2011-07-29 15:31:52

Oracle數(shù)據(jù)庫(kù)ORDER BY

2010-05-21 13:34:53

MySQL數(shù)據(jù)庫(kù)

2011-08-25 14:50:42

SQL Server數(shù)常用操作

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2009-11-26 10:32:57

PHP代碼優(yōu)化

2011-03-17 14:09:25

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

2021-10-12 23:10:58

UnsafeJavaJDK

2009-06-30 14:23:02

ORACLE數(shù)據(jù)庫(kù)JSP

2010-08-12 09:41:06

DB2數(shù)據(jù)庫(kù)恢復(fù)
點(diǎn)贊
收藏

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