SQLServer如何使用UNION代替OR提升查詢性能

這篇文章主要介紹SQLServer如何使用UNION代替OR提升查詢性能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創新互聯致力于成都網站設計、成都網站制作,成都網站設計,集團網站建設等服務標準化,推過標準化降低中小企業的建站的成本,并持續提升建站的定制化服務水平進行質量交付,讓企業網站從市場競爭中脫穎而出。 選擇成都創新互聯,就選擇了安全、穩定、美觀的網站建設服務!

SQLServer數據庫查詢的過程中,通過對SQL語句的優化來提高SQL查詢的性能。下面創新互聯小編來講解下SQLServer怎么使用UNION代替OR提升查詢性能?

SQLServer怎么使用UNION代替OR提升查詢性能

SQL>settimingonSQL>setautotraceonSQL>selectcount(*)rowcount_lhy2fromswgl_ddjbxxt3wheret。fzgs_dm='001085'4and(t。lrr_dm='e90e3fe4237c4af988477329c7f2059e'orexists5(selecty。kh_id6fromkhgl_khywdlxxy7wherey。kh_id=t。kh_id8andy。sskhjl_dm='e90e3fe4237c4af988477329c7f2059e')or9t。kpr_dm='e90e3fe4237c4af988477329c7f2059e')10andt。xjbz='9999'11andt。FROMNBGL1='0';SQL>setline300SQL>/ROWCOUNT_LHY————————60已用時間:00:00:20。53執行計劃——————————————————————————————————————Planhashvalue:1217125969——————————————————————————————————————————————————————————————————————|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|——————————————————————————————————————————————————————————————————————|0|SELECTSTATEMENT||1|86|28048(1)|00:05:37||1|SORTAGGREGATE||1|86||||*2|FILTER|||||||*3|TABLEACCESSFULL|SWGL_DDJBXX|5926|497K|28048(1)|00:05:37||*4|TABLEACCESSBYINDEXROWID|KHGL_KHYWDLXX|1|57|5(0)|00:00:01||*5|INDEXRANGESCAN|IDX_KHGL_KHYWDLXX_KHID|1||3(0)|00:00:01|————————————————————————————————————————————————————————————————————PredicateInformation(identifiedbyoperationid):——————————————————————————————————-2-filter("T"。"LRR_DM"='e90e3fe4237c4af988477329c7f2059e'OR"T"。"KPR_DM"='e90e3fe4237c4af988477329c7f2059e'OREXISTS(SELECT0FROM"KHGL_KHYWDLXX""Y"WHERE"Y"。"KH_ID"=:B1AND"Y"。"SSKHJL_DM"='e90e3fe4237c4af988477329c7f2059e'))3-filter("T"。"FROMNBGL1"='0'AND"T"。"XJBZ"='9999'AND"T"。"FZGS_DM"='001085')4-filter("Y"。"SSKHJL_DM"='e90e3fe4237c4af988477329c7f2059e')5-access("Y"。"KH_ID"=:B1)統計信息——————————————————————————————————————0recursivecalls0dbblockgets804560consistentgets71127physicalreads0redosize516bytessentviaSQL*Nettoclient469bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient0sorts(memory)0sorts(disk)1rowsprocessed

用UNION代替OR對其進行優化后的代碼如下:

SQL>selectcount(*)2from(select*3fromswgl_ddjbxxt4wheret。lrr_dm='e90e3fe4237c4af988477329c7f2059e'5andt。fzgs_dm='001085'6andt。xjbz='9999'7andt。FROMNBGL1='0'8union9select*10fromswgl_ddjbxxt11wheret。kpr_dm='e90e3fe4237c4af988477329c7f2059e'12andt。fzgs_dm='001085'13andt。xjbz='9999'14andt。FROMNBGL1='0'15union16select*17fromswgl_ddjbxxt18whereexists19(selecty。kh_id20fromkhgl_khywdlxxy21wherey。kh_id=t。kh_id22andy。sskhjl_dm='e90e3fe4237c4af988477329c7f2059e')23andt。fzgs_dm='001085'24andt。xjbz='9999'25andt。FROMNBGL1='0');COUNT(*)————————60已用時間:00:00:06。89執行計劃——————————————————————————————————————Planhashvalue:3846872744————————————————————————————-----------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|TempSpc|Cost(%CPU)|Time|-----------------------------------------------------------------------------------------------------------------------|0|SELECTSTATEMENT||1|||52263(1)|00:10:28||1|SORTAGGREGATE||1||||||2|VIEW||5996|||52263(1)|00:10:28||3|SORTUNIQUE||5996|2238K|6344K|52263(47)|00:10:28||4|UNION-ALL||||||||*5|TABLEACCESSFULL|SWGL_DDJBXX|59|19234||28037(1)|00:05:37||*6|TABLEACCESSBYINDEXROWID|SWGL_DDJBXX|10|3260||1209(1)|00:00:15||*7|INDEXRANGESCAN|IDX_SWGL_DDJBXX_KPRDM|4748|||34(0)|00:00:01||*8|TABLEACCESSBYINDEXROWID|SWGL_DDJBXX|1|326||5(0)|00:00:01||9|NESTEDLOOPS||5927|2216K||22527(1)|00:04:31||10|SORTUNIQUE||10165|565K||1916(1)|00:00:23||11|TABLEACCESSBYINDEXROWID|KHGL_KHYWDLXX|10165|565K||1916(1)|00:00:23||*12|INDEXRANGESCAN|IDX_KHGL_KHYWDLXX_SSKHJL|10165|||111(0)|00:00:02||*13|INDEXRANGESCAN|IDX_SWGL_DDJBXX_KHID|2|||2(0)|00:00:01|-----------------------------------------------------------------------------------------------------------------------PredicateInformation(identifiedbyoperationid):---------------------------------------------------5-filter("T"。"LRR_DM"='e90e3fe4237c4af988477329c7f2059e'AND"T"。"FROMNBGL1"='0'AND"T"。"XJBZ"='9999'AND"T"。"FZGS_DM"='001085')6-filter("T"。"FROMNBGL1"='0'AND"T"。"XJBZ"='9999'AND"T"。"FZGS_DM"='001085')7-access("T"。"KPR_DM"='e90e3fe4237c4af988477329c7f2059e')8-filter("T"。"FROMNBGL1"='0'AND"T"。"XJBZ"='9999'AND"T"。"FZGS_DM"='001085')12-access("Y"。"SSKHJL_DM"='e90e3fe4237c4af988477329c7f2059e')13-access("Y"。"KH_ID"="T"。"KH_ID")統計信息----------------------------------------------------------1recursivecalls0dbblockgets128422consistentgets10308physicalreads0redosize512bytessentviaSQL*Nettoclient469bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient2sorts(memory)0sorts(disk)1rowsprocessed

SQL改寫之后,執行時間由原來的20秒下降到6秒,邏輯讀由804560降低到128422,性能還是有很大提升的,到了這里優化還沒完,可以創建一個組合索引進一步優化。

createindexidxonswgl_ddjbxx(fzgs_dm,xjbz,FROMNBGL1);

SQLServer怎么使用UNION代替OR提升查詢性能

創建索引之后,原始的SQL執行時間,執行計劃,統計信息如下:

SQL>selectcount(*)rowcount_lhy2fromswgl_ddjbxxt3wheret。fzgs_dm='001085'4and(t。lrr_dm='e90e3fe4237c4af988477329c7f2059e'orexists5(selecty。kh_id6fromkhgl_khywdlxxy7wherey。kh_id=t。kh_id8andy。sskhjl_dm='e90e3fe4237c4af988477329c7f2059e')or9t。kpr_dm='e90e3fe4237c4af988477329c7f2059e')10andt。xjbz='9999'11andt。FROMNBGL1='0';ROWCOUNT_LHY------------60已用時間:00:00:02。96執行計劃----------------------------------------------------------Planhashvalue:3049366449--------------------------------------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|--------------------------------------------------------------------------------------------------------|0|SELECTSTATEMENT||1|86|506(0)|00:00:07||1|SORTAGGREGATE||1|86||||*2|FILTER|||||||3|TABLEACCESSBYINDEXROWID|SWGL_DDJBXX|5926|497K|506(0)|00:00:07||*4|INDEXRANGESCAN|IDX|2370||12(0)|00:00:01||*5|TABLEACCESSBYINDEXROWID|KHGL_KHYWDLXX|1|57|5(0)|00:00:01||*6|INDEXRANGESCAN|IDX_KHGL_KHYWDLXX_KHID|1||3(0)|00:00:01|--------------------------------------------------------------------------------------------------------PredicateInformation(identifiedbyoperationid):---------------------------------------------------2-filter("T"。"LRR_DM"='e90e3fe4237c4af988477329c7f2059e'OR"T"。"KPR_DM"='e90e3fe4237c4af988477329c7f2059e'OREXISTS(SELECT0FROM"KHGL_KHYWDLXX""Y"WHERE"Y"。"KH_ID"=:B1AND"Y"。"SSKHJL_DM"='e90e3fe4237c4af988477329c7f2059e'))4-access("T"。"FZGS_DM"='001085'AND"T"。"XJBZ"='9999'AND"T"。"FROMNBGL1"='0')5-filter("Y"。"SSKHJL_DM"='e90e3fe4237c4af988477329c7f2059e')6-access("Y"。"KH_ID"=:B1)統計信息----------------------------------------------------------1recursivecalls0dbblockgets702767consistentgets0physicalreads0redosize516bytessentviaSQL*Nettoclient469bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient0sorts(memory)0sorts(disk)1rowsprocessed

改寫的SQL:

SQL>selectcount(*)2from(select*3fromswgl_ddjbxxt4wheret。lrr_dm='e90e3fe4237c4af988477329c7f2059e'5andt。fzgs_dm='001085'6andt。xjbz='9999'7andt。FROMNBGL1='0'8union9select*10fromswgl_ddjbxxt11wheret。kpr_dm='e90e3fe4237c4af988477329c7f2059e'12andt。fzgs_dm='001085'13andt。xjbz='9999'14andt。FROMNBGL1='0'15union16select*17fromswgl_ddjbxxt18whereexists19(selecty。kh_id20fromkhgl_khywdlxxy21wherey。kh_id=t。kh_id22andy。sskhjl_dm='e90e3fe4237c4af988477329c7f2059e')23andt。fzgs_dm='001085'24andt。xjbz='9999'25andt。FROMNBGL1='0');COUNT(*)----------60已用時間:00:00:00。53執行計劃----------------------------------------------------------Planhashvalue:2947849958-------------------------------------------------------------------------------------------------------------------------|Id|Operation|Name|Rows|Bytes|TempSpc|Cost(%CPU)|Time|-------------------------------------------------------------------------------------------------------------------------|0|SELECTSTATEMENT||1|||3469(1)|00:00:42||1|SORTAGGREGATE||1||||||2|VIEW||5995|||3469(1)|00:00:42||3|SORTUNIQUE||5995|2238K|4760K|3469(86)|00:00:42||4|UNION-ALL||||||||*5|TABLEACCESSBYINDEXROWID|SWGL_DDJBXX|59|19234||506(0)|00:00:07||*6|INDEXRANGESCAN|IDX|2370|||12(0)|00:00:01||7|TABLEACCESSBYINDEXROWID|SWGL_DDJBXX|10|3260||50(0)|00:00:01||8|BITMAPCONVERSIONTOROWIDS||||||||9|BITMAPAND||||||||10|BITMAPCONVERSIONFROMROWIDS||||||||*11|INDEXRANGESCAN|IDX|2370|||12(0)|00:00:01||12|BITMAPCONVERSIONFROMROWIDS||||||||*13|INDEXRANGESCAN|IDX_SWGL_DDJBXX_KPRDM|2370|||34(0)|00:00:01||*14|HASHJOINRIGHTSEMI||5926|2216K||2423(1)|00:00:30||15|TABLEACCESSBYINDEXROWID|KHGL_KHYWDLXX|10165|565K||1916(1)|00:00:23||*16|INDEXRANGESCAN|IDX_KHGL_KHYWDLXX_SSKHJL|10165|||111(0)|00:00:02||17|TABLEACCESSBYINDEXROWID|SWGL_DDJBXX|5926|1886K||506(0)|00:00:07||*18|INDEXRANGESCAN|IDX|2370|||12(0)|00:00:01|-------------------------------------------------------------------------------------------------------------------------PredicateInformation(identifiedbyoperationid):---------------------------------------------------5-filter("T"。"LRR_DM"='e90e3fe4237c4af988477329c7f2059e')6-access("T"。"FZGS_DM"='001085'AND"T"。"XJBZ"='9999'AND"T"。"FROMNBGL1"='0')11-access("T"。"FZGS_DM"='001085'AND"T"。"XJBZ"='9999'AND"T"。"FROMNBGL1"='0')filter("T"。"FROMNBGL1"='0'AND"T"。"XJBZ"='9999'AND"T"。"FZGS_DM"='001085')13-access("T"。"KPR_DM"='e90e3fe4237c4af988477329c7f2059e')14-access("Y"。"KH_ID"="T"。"KH_ID")16-access("Y"。"SSKHJL_DM"='e90e3fe4237c4af988477329c7f2059e')18-access("T"。"FZGS_DM"='001085'AND"T"。"XJBZ"='9999'AND"T"."FROMNBGL1"='0')統計信息---------------------------------------------------------1recursivecalls0dbblockgets25628consistentgets0physicalreads0redosize512bytessentviaSQL*Nettoclient469bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient1sorts(memory)0sorts(disk)1rowsprocessed。

以上是“SQLServer如何使用UNION代替OR提升查詢性能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯行業資訊頻道!

網站名稱:SQLServer如何使用UNION代替OR提升查詢性能
網站URL:http://m.kartarina.com/article18/geccdp.html

成都網站建設公司_創新互聯,為您提供企業建站網站建設云服務器自適應網站微信公眾號網站排名

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司
主站蜘蛛池模板: 性色av无码免费一区二区三区| 亚洲精品无码不卡在线播放| 熟妇人妻中文a∨无码| yy111111少妇影院里无码| 一本色道无码不卡在线观看| 日韩精品人妻系列无码专区 | 不卡无码人妻一区三区音频 | 亚洲无码黄色网址| 91精品日韩人妻无码久久不卡| 久久中文字幕无码一区二区| 亚洲一区AV无码少妇电影☆| 国产久热精品无码激情| 久久无码av三级| 亚洲乱亚洲乱少妇无码| 无码av免费毛片一区二区| 亚洲AV无码久久| 国产在线无码一区二区三区视频| 成人麻豆日韩在无码视频| 欧洲人妻丰满av无码久久不卡 | 精品爆乳一区二区三区无码av| 国产高清无码二区 | 亚洲中文字幕无码久久综合网| 日韩av无码国产精品| 18禁网站免费无遮挡无码中文| 亚洲av日韩av无码黑人| 人妻中文无码久热丝袜| 免费一区二区无码东京热| 激情无码人妻又粗又大| 无码av无码天堂资源网| 伊人无码精品久久一区二区| 亚洲综合无码一区二区三区 | 久久亚洲AV成人无码电影| 亚洲啪啪AV无码片| 久久国产加勒比精品无码| 亚洲色无码一区二区三区| 亚洲色中文字幕无码AV| 无码日韩精品一区二区三区免费| 国产拍拍拍无码视频免费| 亚洲成AV人片在线播放无码 | 无码中文av有码中文a| 精品无码久久久久国产|