SQLServer效能提高的方法)

來源:互聯網
上載者:User

1:不要在列上使用函數,可以在標量上使用函數

如 WHERE DATEADD(day, 15, OrderDate) = '07/23/1996'改成OrderDate = DATEADD(day, -15, '07/23/1996');

2:不要聲明一個char變數去和nchar列去比較,相反nvarcha和varchar也一樣,在比較的時候會隱式使用Convert函數,進而可能無法使用索引。

3:不必要的表不要join進來;盡量避免使用DISTINCT從句

4:select * 不僅會加大網路流量,而且更容易引起表掃描;使用where語句來限制你返回的行,對大結果集進行分頁返回, 僅僅返回你需要的行和列

5:like後面不要跟前面是萬用字元的單詞;像<>和not like等謂詞盡量少用,盡量用IF EXISTS和IF NOT EXISTS來取代,這樣可以使用索引

6:預存程序的好處:邏輯分離,把商務邏輯和資料處理邏輯分離;調整SQL語句不需要重新部署程式;減少網路頻寬;提高安全性和整合性,可以給預存程序指派存取權限等[不確定是否可以];參數化查詢可以防止SQL注入;防止查詢計劃重編譯

7:遊標的使用會反覆提取行,加鎖,管理鎖,返回行等一系列操作,要用也盡量用唯讀向前遊標,少用火線遊標,它們會增加對tempdb的壓力[不確定]。通常遊標用來處理連續的行,如果這個表有主鍵,可以用一個while語句來取代遊標的使用

8:事務在開始後會鎖定資源以防止其他事務執行,所以要保持事務盡量短。可以在應用裡開始一個事務,常用的做法是在開始事務前驗證資料的有效性,當然在事務裡也需要驗證資料,但這已經避免了好多可能在事務裡復原的機會

9:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.