日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

關(guān)于SQL SERVER高并發(fā)解決方案

系統(tǒng) 2147 0
原文: 關(guān)于SQL SERVER高并發(fā)解決方案

  現(xiàn)在大家都比較關(guān)心的問題就是在多用戶高并發(fā)的情況下,如何開發(fā)系統(tǒng),這對(duì)我們程序員來說,確實(shí)是值得研究,最近找工作面試時(shí)也經(jīng)常被問到,其實(shí)我早有去關(guān)心和了解這類問題,但一直沒有總結(jié)一下,導(dǎo)致面試時(shí)無法很完整全面的回答,所以今天我專門總結(jié)概況了一下關(guān)于SQL SERVER高并發(fā)解決方案,希望能幫助大家,若有不對(duì)之外,還請(qǐng)及時(shí)告之,謝謝!

SQL SERVER高并發(fā)解決方案主要是從以下幾個(gè)方面:

1.SQL語句優(yōu)化:

  A.盡可能的精確查詢條件及查詢字段,縮小查詢范圍(包括使用分頁查詢);

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

  C.不要對(duì)查詢的字段進(jìn)行函數(shù)運(yùn)算,

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

      bb. 'aa'+'123'='aa123',而應(yīng)該是:'aa'=left('aa123',2)

  D.判斷數(shù)據(jù)存在,不要使用TOP 1,而應(yīng)該是:EXITS

  E.對(duì)于復(fù)雜SQL查詢,可直接使用SQL存儲(chǔ)過程或建立視圖(視圖不可太復(fù)雜);

  F.盡可能的少用游標(biāo),觸發(fā)器;

2.表設(shè)計(jì)優(yōu)化:

  A.縱向分割表設(shè)計(jì),將表按照某種原則(可按照字段讀寫頻率來設(shè)計(jì))設(shè)計(jì)成相對(duì)應(yīng)的幾個(gè)表,之間采用主(外)鍵關(guān)聯(lián)查詢;

  B.橫向分割表設(shè)計(jì),將表中的數(shù)據(jù)按照使用價(jià)值(比如:只用只用到近3個(gè)月的有效數(shù)據(jù))來進(jìn)行數(shù)據(jù)轉(zhuǎn)移備份,以減少表的數(shù)據(jù)量;

  C.表數(shù)據(jù)物理存放分區(qū)設(shè)計(jì),將表中的數(shù)據(jù)按照某種規(guī)則建立物理表分區(qū)來存儲(chǔ),以降低硬盤的IO負(fù)擔(dān);

  D.建立適當(dāng)?shù)乃饕ň奂饕c非聚集索引);

3.事務(wù)設(shè)置優(yōu)化:

  事務(wù)隔離級(jí)別有:(隔離級(jí)別作用于事務(wù)中,而鎖作用于每條SQL語句上)

隔離級(jí)別

臟讀

不可重復(fù)讀取

幻像

說明

?產(chǎn)生或等同對(duì)應(yīng)的鎖

未提交讀 (read?uncommitted)

如果其他事務(wù)更新,不管是否提交,立即執(zhí)行

? NOLOCK

提交讀 (read?committed 默認(rèn) )

讀取提交過的數(shù)據(jù)。如果其他事務(wù)更新沒提交,則等待

? HOLDLOCK

可重復(fù)讀 (repeatable?read)

查詢期間,不允許其他事務(wù) update

? HOLDLOCK

可串行讀 (serializable)

查詢期間,不允許其他事務(wù) insert delet

? HOLDLOCK

    A.事務(wù)隔離原則: 共享讀,排它寫 ,即表示:在執(zhí)行查詢時(shí),若對(duì)數(shù)據(jù)一致性要求很高時(shí),可采用 可重復(fù)讀 (repeatable?read) 隔離級(jí)別,若沒有嚴(yán)格要求,則可建議使用 未提交讀 (read?uncommitted)隔離級(jí)別;

4.服務(wù)器硬件優(yōu)化:

  A.服務(wù)器內(nèi)存,硬盤等核心硬件性能當(dāng)然越強(qiáng)越好;

  B.購買多臺(tái)服務(wù)器并建立集群, 以實(shí)現(xiàn)利用多個(gè)計(jì)算機(jī)進(jìn)行 并行計(jì)算 從而獲得很高的計(jì)算速度,也可以用多個(gè)計(jì)算機(jī)做備份,從而使得任何一個(gè)機(jī)器壞了整個(gè)系統(tǒng)還是能正常運(yùn)行;

C.在多臺(tái)服務(wù)器建立DB鏡像同步,并實(shí)現(xiàn)讀寫分離,即:除了指定的一臺(tái)或幾臺(tái)服務(wù)器具有允許更新以外,其余的服務(wù)器均只作為數(shù)據(jù)鏡像同步,不能更新,僅供查詢;

關(guān)于SQL SERVER高并發(fā)解決方案


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 榆林市| 靖边县| 古田县| 大田县| 昔阳县| 安龙县| 牡丹江市| 旌德县| 泗洪县| 英超| 九寨沟县| 章丘市| 宁陕县| 诸城市| 荥经县| 鸡东县| 师宗县| 依安县| 原阳县| 冀州市| 遂昌县| 乐至县| 金沙县| 基隆市| 邳州市| 民权县| 陆川县| 峨眉山市| 吴川市| 眉山市| 偃师市| 镇平县| 张家口市| 台北县| 嘉鱼县| 瑞昌市| 佛学| 华阴市| 上蔡县| 拜城县| 沈丘县|