SQL語句執(zhí)行效率.doc

SQL語句執(zhí)行效率.doc

ID:51011099

大小:59.00 KB

頁數(shù):8頁

時間:2020-03-08

SQL語句執(zhí)行效率.doc_第1頁
SQL語句執(zhí)行效率.doc_第2頁
SQL語句執(zhí)行效率.doc_第3頁
SQL語句執(zhí)行效率.doc_第4頁
SQL語句執(zhí)行效率.doc_第5頁
資源描述:

《SQL語句執(zhí)行效率.doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、SQL語句執(zhí)行效率SQL語句中,IN、EXISTS、NOTIN、NOTEXISTS的效率較低,尤其是后兩種語句,當(dāng)數(shù)據(jù)量較大時,更常給人一種死機(jī)般的感覺。本文提供一種使用連接的方法代替以上的四種語句,可大副提高SQL語句的運(yùn)行效率。以NOTIN為例,當(dāng)數(shù)據(jù)量達(dá)到一萬時,效率可提高20倍,數(shù)據(jù)量越大,效率提高的幅度也就越大。1)SELECT語句中的中的效率提高方法SQL語句如下:CREATETABLETAB1(COL1VARCHAR(20)NOTNULL,COL2INTEGER,PRIMARYKEY(COL1));CREATETAB

2、LETAB2(COL1VARCHAR(20)NOTNULL,PRIMARYKEY(COL1));CREATETABLETAB3(COL1VARCHAR(20)NOTNULL,PRIMARYKEY(COL1));下面,我們將舉2個例子來具體說明使用連接替換IN、NOTIN、EXISTS、NOTEXISTS的方法?!∽x取表1中第2列(COL2)數(shù)據(jù)的總和,且其第1列數(shù)據(jù)存在于表2的第1列中。1.使用IN的SQL語句:SELECTSUM(COL2)FROMTAB1WHERECOL1IN(SELECTCOL1FROMTAB2)2.使用EX

3、ISTS的SQL語句:SELECTSUM(COL2)FROMTAB1WHEREEXISTS(SELECT*FROMTAB2WHERETAB1.COL1=TAB2.COL1)3.使用連接的SQL語句:SELECTSUM(A.COL2)FROMTAB1A,TAB2BWHEREA.COL1=B.COL1 讀取表1中第2列(COL2)數(shù)據(jù)的總和,且其第1列數(shù)據(jù)不存在于表2的第1列中。1.使用NOTIN的SQL語句:SELECTSUM(COL2)FROMTAB1WHERECOL1NOTIN(SELECTCOL1FROMTAB2)2.使用NO

4、TEXISTS的SQL語句:SELECTSUM(COL2)FROMTAB1WHERENOTEXISTS(SELECT*FROMTAB2WHERETAB1.COL1=TAB2.COL1)3.使用外連接的SQL語句:SELECTSUM(A.COL2)FROMTAB1A,TAB2BWHEREA.COL1=B.COL1(+)ANDB.COL1ISNULL2)DELETE語句中的效率提高方法SQL語句如下:CREATETABLETA(CAINT)CREATETABLETB(CAINT)CREATETABLETC(CAINT)1.用IN的SQ

5、L語句:DELETEFROMTAWHERETA.CAIN(SELECTCAFROMTB)2.用EXISTS的SQL語句:DELETEFROMTAWHEREEXISTS(SELECT*FROMTBWHERETB.CA=TA.CA)3.使用連接的SQL語句:DELETETAFROMTA,TBWHERETA.CA=TB.CA 刪除表A中表A存在但表B中不存在的數(shù)據(jù)1.使用IN的SQL語句:DELETEFROMTAWHERETA.CANOTIN(SELECTCAFROMTB)2.使用EXISTS的SQL語句:DELETEFROMTAWHE

6、RENOTEXISTS(SELECTCAFROMTBWHERETB.CA=TA.CA)3.使用連接的SQL語句:DELETETAFROMTALEFTOUTERJOINTBONTA.CA=TB.CAWHERETB.CAISNULL3)UPDATE語句中的效率提高方法更新表A中表A和表B相同的數(shù)據(jù)1.使用IN的SQL語句:UPDATETASETCA=CA+10000WHERECAIN(SELECTCAFROMTB)2.使用EXISTS的SQL語句:UPDATETASETCA=CA+10000WHEREEXISTS(SELECTCAFR

7、OMTBWHERETB.CA=TA.CA)3.使用連接的SQL語句:UPDATETASETTA.CA=TA.CA+10000FROMTA,TBWHERETA.CA=TB.CA更新表A中表A存在但表B中不存在的數(shù)據(jù)1.使用IN的SQL語句:UPDATETASETCA=CA+10000WHERECANOTIN(SELECTCAFROMTB)2.使用EXISTS的SQL語句:UPDATETASETCA=CA+10000WHERENOTEXISTS(SELECTCAFROMTBWHERETB.CA=TA.CA)3.使用連接的SQL語句:U

8、PDATETASETTA.CA=TA.CA+10000FROMTALEFTOUTERJOINTBONTA.CA=TB.CAWHERETB.CAISNULL================================方法一、盡量使用復(fù)雜的SQL來

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。