SQL语句执行效率.doc

SQL语句执行效率.doc

ID:51011099

大小:59.00 KB

页数:8页

时间:2020-03-08

SQL语句执行效率.doc_第1页
SQL语句执行效率.doc_第2页
SQL语句执行效率.doc_第3页
SQL语句执行效率.doc_第4页
SQL语句执行效率.doc_第5页
资源描述:

《SQL语句执行效率.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、SQL语句执行效率SQL语句中,IN、EXISTS、NOTIN、NOTEXISTS的效率较低,尤其是后两种语句,当数据量较大时,更常给人一种死机般的感觉。本文提供一种使用连接的方法代替以上的四种语句,可大副提高SQL语句的运行效率。以NOTIN为例,当数据量达到一万时,效率可提高20倍,数据量越大,效率提高的幅度也就越大。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的方法。 读取表1中第2列(COL2)数据的总和,且其第1列数据存在于表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)数据的总和,且其第1列数据不存在于表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中不存在的数据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相同的数据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中不存在的数据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================================方法一、尽量使用复杂的SQL来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。