《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > SQL Server存儲過程編寫和優化措施
SQL Server存儲過程編寫和優化措施
摘要: 在數據庫的開發過程中,經常會遇到復雜的業務邏輯和對數據庫的操作,這個時候就會用SP來封裝數據庫操作。如果項目的SP較多,書寫又沒有一定的規范,將會影響以后的系統維護困難和大SP邏輯的難以理解,另外如果數據庫的數據量大或者項目對SP的性能要求很,就會遇到優化的問題,否則速度有可能很慢,經過親身經驗,一個經過優化過的SP要比一個性能差的SP的效率甚至高幾百倍。
Abstract:
Key words :

一、適合讀者對象:數據庫開發程序員,數據庫的數據量很多,涉及到對SP存儲過程)的優化的項目開發人員,對數據庫有濃厚興趣的人。  

二、介紹:在數據庫的開發過程中,經常會遇到復雜的業務邏輯和對數據庫的操作,這個時候就會用SP來封裝數據庫操作。如果項目的SP較多,書寫又沒有一定的規范,將會影響以后的系統維護困難和大SP邏輯的難以理解,另外如果數據庫的數據量大或者項目對SP的性能要求很,就會遇到優化的問題,否則速度有可能很慢,經過親身經驗,一個經過優化過的SP要比一個性能差的SP的效率甚至高幾百倍。 

三、內容:  

1、開發人員如果用到其他庫的Table或View,務必在當前庫中建立View來實現跨庫操作,最好不要直接使用“databse.dbo.table_name”,因為sp_depends不能顯示出該SP所使用的跨庫table或view,不方便校驗。  

2、開發人員在提交

前,必須已經使用set showplan on分析過查詢計劃,做過自身的查詢優化檢查。  

3、高程序運行效率,優化應用程序,在SP編寫過程中應該注意以下幾點:   

a)SQL的使用規范:

i. 盡量避免大事務操作,慎用holdlock子句,提高系統并發能力。

ii. 盡量避免反復訪問同一張或幾張表,尤其是數據量較大的表,可以考慮先根據條件提取數據到臨時表中,然后再做連接。

iii. 盡量避免使用游標,因為游標的效率較差,如果游標操作的數據超過1萬行,那么就應該改寫;如果使用了游標,就要盡量避免在游標循環中再進行表連接的操作。

iv. 注意where字句寫法,必須考慮語句順序,應該根據索引順序、范圍大小來確定條件子句的前后順序,盡可能的讓字段順序與索引順序相一致,范圍從大到小。

v. 不要在where子句中的“=”左邊進行函數、算術運算或其他表達式運算,否則系統將可能無法正確使用索引。

vi. 盡量使用exists代替select count(1)來判斷是否存在記錄,count函數只有在統計表中所有行數時使用,而且count(1)比count(*)更有效率。

vii. 盡量使用“>=”,不要使用“>”。

viii. 注意一些or子句和union子句之間的替換

ix. 注意表之間連接的數據類型,避免不同類型數據之間的連接。

x. 注意存儲過程中參數和數據類型的關系。

xi. 注意insert、update操作的數據量,防止與其他應用沖突。如果數據量超過200個數據頁面(400k),那么系統將會進行鎖升級,頁級鎖會升級成表級鎖。  

b)索引的使用規范:

i. 索引的創建要與應用結合考慮,建議大的OLTP表不要超過6個索引。

ii. 盡可能的使用索引字段作為查詢條件,尤其是聚簇索引,必要時可以通過index index_name來強制指定索引

iii. 避免對大表查詢時進行table scan,必要時考慮新建索引。

iv. 在使用索引字段作為條件時,如果該索引是聯合索引,那么必須使用到該索引中的第一個字段作為條件時才能保證系統使用該索引,否則該索引將不會被使用。

v. 要注意索引的維護,周期性重建索引,重新編譯存儲過程。  

c) tempdb的使用規范:

i. 盡量避免使用distinct、order by、group by、having、join、cumpute,因為這些語句會加重tempdb的負擔。

ii. 避免頻繁創建和刪除臨時表,減少系統表資源的消耗。

iii. 在新建臨時表時,如果一次性插入數據量很大,那么可以使用select into代替create table,避免log,提高速度;如果數據量不大,為了緩和系統表的資源,建議先create table,然后insert。

iv. 如果臨時表的數據量較大,需要建立索引,那么應該將創建臨時表和建立索引的過程放在單獨一個子存儲過程中,這樣才能保證系統能夠很好的使用到該臨時表的索引。

v. 如果使用到了臨時表,在存儲過程的最后務必將所有的臨時表顯式刪除,先truncate table,然后drop table,這樣可以避免系統表的較長時間鎖定。

vi. 慎用大的臨時表與其他大表的連接查詢和修改,減低系統表負擔,因為這種操作會在一條語句中多次使用tempdb的系統表。  
d)合理的算法使用:   

根據上面已提到的SQL優化技術和ASE Tuning手冊中的SQL優化內容,結合實際應用,采用多種算法進行比較,以獲得消耗資源最少、效率最高的方法。具體可用ASE調優命令:set statistics io on, set statistics time on , set showplan on 等。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美三级电影大全| 一区二区三区在线高清| 久久精品中文字幕免费mv| 在线亚洲一区| 99国内精品久久| 亚洲精选国产| 亚洲人成网站精品片在线观看| 久久99伊人| 欧美一区免费视频| 亚洲欧美电影院| 亚洲欧美成人一区二区三区| 亚洲女ⅴideoshd黑人| 亚洲影视在线播放| 亚洲欧美日韩国产综合精品二区| 中国成人黄色视屏| 中文日韩欧美| 亚洲自拍16p| 午夜精品视频在线观看| 性欧美18~19sex高清播放| 性亚洲最疯狂xxxx高清| 欧美一区二区三区免费在线看| 亚洲欧美制服中文字幕| 亚洲欧美日韩中文播放| 欧美一级久久| 亚洲高清激情| 亚洲精品一区在线观看| av不卡在线| 亚洲在线播放| 久久xxxx| 久久久亚洲精品一区二区三区 | 亚洲毛片播放| 一本色道精品久久一区二区三区 | 亚洲一区二区在线| 欧美亚洲在线| 久久久人成影片一区二区三区观看| 久久久人成影片一区二区三区观看 | 亚洲国语精品自产拍在线观看| 亚洲国产一成人久久精品| 亚洲剧情一区二区| 亚洲在线观看视频| 久久国产欧美精品| 日韩小视频在线观看专区| 亚洲一区二区精品在线| 欧美在线免费观看视频| 久久亚洲风情| 欧美日韩四区| 国产亚洲一区二区三区在线播放| 一区免费观看视频| 亚洲精品人人| 亚洲欧美国产日韩天堂区| 亚洲国产精品va在看黑人| 中文国产成人精品| 久久久精品午夜少妇| 欧美高清视频一区二区三区在线观看| 欧美日韩另类国产亚洲欧美一级| 国产精品视频精品| 亚洲福利久久| 亚洲视屏在线播放| 亚洲激情社区| 午夜精品久久久久久久99樱桃| 久久人人97超碰精品888| 欧美日韩国产成人| 国产日韩视频| 亚洲精品综合精品自拍| 性亚洲最疯狂xxxx高清| 一本色道久久88综合日韩精品| 欧美伊人精品成人久久综合97| 欧美成年人视频| 国产噜噜噜噜噜久久久久久久久| 亚洲电影网站| 性久久久久久久| 中国成人亚色综合网站| 久久免费视频在线观看| 欧美四级剧情无删版影片| 好吊色欧美一区二区三区视频| 99国产精品久久久久久久成人热| 久久精品99国产精品| 亚洲一区影音先锋| 欧美国产精品一区| 国产尤物精品| 亚洲中字在线| 中文久久精品| 欧美黄色免费网站| 黑人极品videos精品欧美裸| 亚洲一二三区视频在线观看| 亚洲精品一区在线观看| 久久综合伊人| 国产免费亚洲高清| 一本色道久久综合亚洲精品婷婷 | 亚洲第一网站免费视频| 亚洲欧美日韩第一区| 欧美精品一区二区三区蜜桃| 国内成人自拍视频| 亚洲伊人观看| 亚洲先锋成人| 欧美激情综合五月色丁香| 国内一区二区三区| 亚洲一区二区三区精品在线观看 | 久久人人爽人人爽| 国产麻豆视频精品| 一区二区三区四区五区精品视频| 亚洲另类在线一区| 欧美11—12娇小xxxx| 国产专区欧美精品| 亚洲欧美日本国产专区一区| 亚洲欧美精品suv| 欧美少妇一区二区| 夜夜狂射影院欧美极品| 99国产一区| 欧美久久婷婷综合色| 亚洲成人原创| 亚洲激情国产精品| 男同欧美伦乱| 在线免费不卡视频| 亚洲国内高清视频| 久热精品视频在线| 狠狠狠色丁香婷婷综合激情| 久久岛国电影| 久久人人爽人人爽爽久久| 国产自产女人91一区在线观看| 欧美在线你懂的| 久久久噜噜噜久久中文字幕色伊伊| 国产欧美日韩在线视频| 亚洲免费在线播放| 欧美一区=区| 国产女主播在线一区二区| 亚洲自拍啪啪| 久久久国产一区二区| 国模吧视频一区| 亚洲第一二三四五区| 久久一区亚洲| 在线观看91精品国产入口| 亚洲电影在线看| 猫咪成人在线观看| 亚洲第一网站免费视频| 亚洲精品在线三区| 欧美日本一区| 一区二区三区视频在线看| 午夜精品在线| 国产亚洲福利一区| 久久精品理论片| 欧美高清视频免费观看| 日韩一级视频免费观看在线| 亚洲在线黄色| 国产麻豆成人精品| 亚洲国产91| 欧美极品一区| 中文精品视频| 久久不射2019中文字幕| 伊人夜夜躁av伊人久久| 亚洲精品老司机| 国产精品爱啪在线线免费观看 | 午夜日韩在线| 国产亚洲亚洲| 亚洲免费av电影| 国产精品九九久久久久久久| 亚洲欧美日韩直播| 欧美岛国激情| 亚洲一区二区在| 美女视频网站黄色亚洲| 夜夜夜精品看看| 久久精品视频在线看| 亚洲人成在线影院| 香蕉精品999视频一区二区| 国内伊人久久久久久网站视频| 日韩午夜免费视频| 国产欧美日韩综合一区在线播放| 亚洲激情一区二区| 国产精品激情| 亚洲欧洲日本国产| 国产精品久久久一本精品| 久久精品国产91精品亚洲| 欧美巨乳波霸| 香蕉视频成人在线观看 | 黄色在线一区| 亚洲伊人伊色伊影伊综合网| 国产一区二区三区在线观看免费视频 | 欧美另类极品videosbest最新版本| 亚洲一区二区黄| 欧美大尺度在线| 亚洲一区二区毛片| 欧美成人激情视频| 亚洲欧美成人精品| 欧美激情在线观看| 欧美一区二区在线看| 欧美日韩一区二区三区免费看| 久久成人精品视频| 欧美午夜精品伦理| 亚洲人成高清| 国产麻豆9l精品三级站| 中国成人亚色综合网站| 永久免费精品影视网站| 先锋影音久久久| 亚洲伦理精品| 另类天堂av| 香蕉久久夜色精品国产使用方法| 欧美日韩国产综合久久| 亚洲国产精品久久久久| 国产精品美女久久久久久久| 日韩天堂av|