在SQL SERVER數(shù)據(jù)庫運行的過程中,有時會出現(xiàn)在多用戶高并發(fā)的情況,那么在這種情況下,如何開發(fā)系統(tǒng)呢,中培偉業(yè)《SQL Server 2014高級管理與性能調(diào)優(yōu)最佳實踐》培訓專家秦老師對此進行了回答。秦老師指出,SQL SERVER高并發(fā)解決方案主要有以下幾個方案。
1.SQL語句優(yōu)化。該優(yōu)化應該注意以下問題:
A.盡可能的精確查詢條件及查詢字段,縮小查詢范圍(包括使用分頁查詢);
B.查詢條件中盡可能少用特定語句;
C.不要對查詢的字段進行函數(shù)運算,
D.判斷數(shù)據(jù)存在,不要使用TOP 1,而應該是:EXITS
E.對于復雜SQL查詢,可直接使用SQL存儲過程或建立視圖(視圖不可太復雜);
F.盡可能的少用游標,觸發(fā)器;
2.表設計優(yōu)化。該優(yōu)化應該注意以下問題:
A.橫向分割表設計,將表按照某種原則(可按照字段讀寫頻率來設計)設計成相對應的幾個表,之間采用主(外)鍵關(guān)聯(lián);
B.縱向分割表設計,將表中的數(shù)據(jù)按照使用價值(比如:只用只用到近3個月的有效數(shù)據(jù))來進行數(shù)據(jù)轉(zhuǎn)移備份,以減少表的數(shù)據(jù)量;
C.表數(shù)據(jù)物理存放分區(qū)設計,將表中的數(shù)據(jù)按照某種規(guī)則建立物理分區(qū)來存儲,以降低硬盤的IO負擔;
D.建立適當?shù)乃饕?聚集索引與非聚集索引);
3.事務設置優(yōu)化。該優(yōu)化應該注意以下問題:
事務隔離原則:共享讀,排它寫,即表示:在執(zhí)行查詢時,若對數(shù)據(jù)一致性要求很高時,可采用可重復讀(repeatable read)隔離級別,若沒有嚴格要求,則可建議使用未提交讀(read uncommitted)隔離級別;
4.服務器硬件優(yōu)化。該優(yōu)化應該注意以下問題:
A.服務器內(nèi)存,硬盤等核心硬件性能當然越強越好;
B.購買多臺服務器并建立集群,以實現(xiàn)利用多個計算機進行并行計算從而獲得很高的計算速度,也可以用多個計算機做備份,從而使得任何一個機器壞了整個系統(tǒng)還是能正常運行;
C.在多臺服務器建立DB鏡像同步,并實現(xiàn)讀寫分離,即:除了指定的一臺或幾臺服務器具有允許更新以外,其余的服務器均只作為數(shù)據(jù)鏡像同步,不能更新,僅供查詢。