數據庫調優 你會看到並行度,如今給你介紹什麼是並行度。sql
SQL服務器有4顆CPU數據庫
同一sql語句的查詢計劃相同,你能夠指定使用幾顆CPU,sql server默認有多少個核,並行度就是多少。 windows
一顆CPU不涉及並行度問題服務器
hp並行度默認爲4*6=24ide
dell並行度默認爲4*4=16sqlserver
將兩臺機器sql server的並行度都強制手工設置爲2,而後進行測試,測試結果以下:測試
在第一個查詢最後加上參數 option(MAXDOP 2),而後分別在hp和dell上執行,耗時都是2s,將參數值改成 1 後,耗時都是1s。網站
在第二個查詢最後加上參數option(MAXDOP 2),而後分別在hp和dell上執行,耗時都是2s,將參數值改成 1 後,耗時都是1s。操作系統
由此可看出,問題確實是由並行度不一樣而引發的。線程
並行度越高,sql查詢並不必定就越快,可能會變慢,但也並非核越少越好。
在執行查詢的時候,sql server會自動分析sql語句,制定查詢計劃,爲每顆CPU分配任務,cpu過多的話,分配任務所耗的時見就越長,但查詢自己執行時間並無變長。在達到4CPU後,cpu主頻越高,sql查詢就越快。
通常狀況下,在自定義sql server所使用的核數的時候,能夠用總核數 /2或4。
微軟根據實際經驗得出,sql server用4個核效率最高。對於sql server來講,cpu是透明的,並不關心哪顆核位於哪顆CPU上。
sql server所支持的cpu個數受sql server版本和操做系統版本所影響。
sql server 2000 sp4 + windows2003 sp2,sql server最多支持4個核。
並行度對SQL Server2000,2005,2008都有影響,實際上都只支持4個核。
更改sql server並行度有兩種方法,以下:
1.在服務器級別適用以下語句更改
在sql語句結尾處關閉統計 :
select getdate()
set statistics profile off
set statistics io off
set statistics time off
如此能夠獲得該sql語句執行的磁盤 io開銷、 時間信息,便於咱們之後分析其餘sql語句、查找數據庫瓶頸。
sql的服務器屬性的 處理器選項卡 當中的默認值最好不要進行更改,若是更改有可能引發數據庫的不穩定,經過該選項卡更改,是須要重新啓動服務器。更改設置 最好經過 sql語句來進行,不須要從新啓動服務器。---- 微軟選項卡功能讀解:1)處理器控制:經過該項能夠選擇使用的cpu2)最大工做線程:255 (在微軟的官方網站上能夠看查到,8顆cpu 能夠設置到480 ,但建議不要設置) 3)在windows上提高 sqlserver的優先級:該項能夠設置,在專門的數據庫服務器上能夠設置該項,但僅限於專門的sql server服務器。--- 微軟也承認。