關於SQL SERVER高並發解決方案

來源:互聯網
上載者:User

標籤:blog   http   io   使用   sp   strong   資料   on   問題   

原文地址:http://www.cnblogs.com/zuowj/p/3566247.html 

 現在大家都比較關心的問題就是在多使用者高並發的情況下,如何開發系統,這對我們程式員來說,確實是值得研究,最近找工作面試時也經常被問到,其實我早有去關心和瞭解這類問題,但一直沒有總結一下,導致面試時無法很完整全面的回答,所以今天我專門總結概況了一下關於SQL SERVER高並發解決方案,希望能協助大家,若有不對之外,還請及時告之,謝謝!

SQL SERVER高並發解決方案主要是從以下幾個方面:

1.SQL語句最佳化:

  A.儘可能的精確查詢條件及查詢欄位,縮小查詢範圍(包括使用分頁查詢);

  B.查詢條件中儘可能少用:like,(not)in,(not)is null,order by,distinct,count(*),!=,<>;

  C.不要對查詢的欄位進行函數運算,

    如:aa. substring(‘aa123‘,1,2)=‘aa‘,而應該是:‘aa123‘ like ‘aa%‘; ---應用到了索引

      bb. ‘aa‘+‘123‘=‘aa123‘,而應該是:‘aa‘=left(‘aa123‘,2)

  D.判斷資料存在,不要使用TOP 1,而應該是:EXITS

  E.對於複雜SQL查詢,可直接使用SQL預存程序或建立視圖(視圖不可太複雜);

  F.儘可能的少用遊標,觸發器;

2.表設計最佳化:

  A.縱向分割表設計,將表按照某種原則(可按照欄位讀寫頻率來設計)設計成相對應的幾個表,之間採用主(外)鍵關聯查詢;

  B.橫向分割表設計,將表中的資料按照使用價值(比如:只用只用到近3個月的有效資料)來進行資料轉移備份,以減少表的資料量;

  C.表資料物理存放分區設計,將表中的資料按照某種規則建立物理表分區來儲存,以降低硬碟的IO負擔;

  D.建立適當的索引(叢集索引與非叢集索引);

3.事務設定最佳化:

  交易隔離等級有:(隔離等級作用於事務中,而鎖作用於每條SQL語句上)

隔離等級

髒讀

不可重複讀取

幻像

說明

 產生或等同對應的鎖

未提交讀(read uncommitted)

如果其他事務更新,不管是否提交,立即執行

 NOLOCK

提交讀(read committed預設)

讀取提交過的資料。如果其他事務更新沒提交,則等待

 HOLDLOCK

可重複讀(repeatable read)

查詢期間,不允許其他事務update

 HOLDLOCK

可串列讀(serializable)

查詢期間,不允許其他事務insert或delet

 HOLDLOCK

    A.事務隔離原則:共用讀,排它寫,即表示:在執行查詢時,若對資料一致性要求很高時,可採用可重複讀(repeatable read)隔離等級,若沒有嚴格要求,則可建議使用未提交讀(read uncommitted)隔離等級;

4.伺服器硬體最佳化:

  A.伺服器記憶體,硬碟等核心硬體效能當然越強越好;

  B.購買多台伺服器並建立叢集,以實現利用多個電腦進行並行計算從而獲得很高的計算速度,也可以用多個電腦做備份,從而使得任何一個機器壞了整個系統還是能正常運行;

C.在多台伺服器建立DB鏡像同步,並實現讀寫分離,即:除了指定的一台或幾台伺服器具有允許更新以外,其餘的伺服器均只作為資料鏡像同步,不能更新,僅供查詢;

關於SQL SERVER高並發解決方案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.