您好,登錄后才能下訂單哦!
這篇文章給大家介紹SQL Server安裝完成后有哪些需要立即修改的配置選項,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
你用安裝向?qū)О惭b了全新的SQL Server,最后你點擊了完成按鈕。哇噢~~~現(xiàn)在我們可以把我們的服務(wù)器進(jìn)入生產(chǎn)了!抱歉,那并不是真的,因為你的全新SQL Server默認(rèn)配置是錯誤的。
是的,你沒看錯:SQL Server的默認(rèn)安裝在很多方面的配置是錯誤的。在今天的文章里,我想給你展示下,為了更快的性能,在SQL Server安裝完成后3個你需要立即修改的配置選項。我們開始吧!
最大服務(wù)器內(nèi)存(Max Server Memory)免責(zé)聲明:如果這些天你在32位系統(tǒng)上運行你的SQL Server,請扔掉你的硬件,買個64位的系統(tǒng),安裝64位的SQL Server,然后從這里繼續(xù)讀。
現(xiàn)在在你面前你應(yīng)該i有個64位的SQL Server。64位意味著你可以理論上訪問2^64的內(nèi)存大小——那是16艾字節(jié)(10億GB)!因為這些巨量的內(nèi)存,計算機(jī)供應(yīng)商當(dāng)前限制64位系統(tǒng)的地址總線“只有”48位——完全64位沒有真正意義。用48位的地址空間,你可以訪問256TB的內(nèi)存——那還是大量的空間。
你可以使用最大服務(wù)器內(nèi)存配置選項來配置SQL Server可以消耗的內(nèi)存大小。下圖顯示的是在64位系統(tǒng)上SQL Server默認(rèn)安裝后的配置選項。
從剛才的圖片你可以看到,SQL Server默認(rèn)配置是可以消耗上至2147483647MB的內(nèi)存——那是2千兆!嗯,用48位的地址總線我們只能物理訪問256TB的內(nèi)存,現(xiàn)在SQL Server可以消耗上至2千兆的內(nèi)存?這里有什么東西不對……最大服務(wù)器內(nèi)存設(shè)置比32位最大整形值還大——2147483647。沒別的。因此SQL Server可以消耗比物理地址更多的內(nèi)存?這是一個很不好的默認(rèn)配置。SQL Server默認(rèn)可以吃光你整個物理內(nèi)存!
你總應(yīng)該改變這個配置選項,這樣的話你可以給系統(tǒng)一些內(nèi)存,讓它可以活著喘氣。一般來說(在服務(wù)器上沒有其它程序/進(jìn)程)你應(yīng)該系統(tǒng)至少10%的物理內(nèi)存。這就是說你需要調(diào)低最大服務(wù)器內(nèi)存設(shè)置。有64GB的物理內(nèi)存我會配置最大服務(wù)器內(nèi)存為56GB,這樣的話系統(tǒng)可以用剩下的8G來消耗和工作。
并行開銷閥值(Cost Threshold for Parallelism)下一個你需要修改的配置選項是SQL Server處理并行開銷的閥值。并行意味著SQL Server能透過多個工作線程運行執(zhí)行計劃里的運算符。并行的目的是提高你查詢的吞吐量。SQL Server里第1個影響并行的配置選項是所謂的并行開銷閥值:
這里你配置的數(shù)字定義查詢成本,查詢優(yōu)化器用它來找更便宜的并行執(zhí)行計劃。如果找到的并行計劃更便宜,這個計劃會被執(zhí)行,不然串行計劃會被執(zhí)行。從剛才的圖你可以看到,SQL Server默認(rèn)配置使用5的成本閥值。當(dāng)你的串行計劃查詢成本大于5,然后查詢優(yōu)化器再次運行查詢優(yōu)化來找更便宜并行執(zhí)行計劃的可能。
遺憾的是,5的成本值當(dāng)下來說是個很小的數(shù)字。因此SQL Server太快嘗試并行你的執(zhí)行計劃。當(dāng)你處理更大的查詢并行才有意義——例如報表或數(shù)據(jù)倉庫情形。在純OLTP情形下,并行計劃象征著糟糕的索引設(shè)計,因為當(dāng)你有缺失索引時,SQL Server需要掃描你的整個聚集索引(在與過濾(Filter)和剩余謂語(residual predicate)組合里),因此你的查詢成本越來越大,它們穿過成本閥值,最后查詢優(yōu)化器給你并行計劃。當(dāng)人們看到并行計劃時,總會擔(dān)心!但問題根源是缺失非聚集索引。
對于并行的成本閥值,我總推薦至少20,甚至50。那樣的話,你確保SQL Server只為你對更大的查詢進(jìn)行并行。即使在你面前有個并行計劃,你也應(yīng)該考慮下可否通過增加一個支持的非聚集索引來是這個查詢成本更低。另外,CXPACKET并不象征著在你的系統(tǒng)里你有并行問題!
最大并行度(Max Degree of Parallelism (MAXDOP))當(dāng)在SQL Server里一個執(zhí)行計劃進(jìn)入并行,最大并行度定義了執(zhí)行計劃里每個并行運算符可用工作線程。下圖顯示了這個選項的默認(rèn)配置。
如你所見,SQL Server使用默認(rèn)值0。這個值意味著SQL Server嘗試并行化你的執(zhí)行計劃穿過分配給SQL Server的所有CPU內(nèi)核(默認(rèn)情況所有內(nèi)核都分配給SQL Server!)。你應(yīng)該能看出這樣的設(shè)置沒有意義,尤其當(dāng)你有大量CPU內(nèi)核的系統(tǒng)。并行化本身帶來負(fù)擔(dān),一旦你使用越多的工作線程,這個負(fù)擔(dān)越大。
一個建議是設(shè)置最大并行度為在一個NUMA結(jié)點里擁有的內(nèi)核數(shù)。因此在查詢執(zhí)行時,SQL Server會嘗試在一個NUMA結(jié)點里保持并行計劃,這也會提高性能。
有時你也會看到建議去設(shè)置最大并行度為1。這個是不好的建議,因為這個使你的“整個”SQL Server 單線程!即使維護(hù)操作(例如索引重建)已單線程執(zhí)行,這會嚴(yán)重傷及性能!當(dāng)然也有一些“獲獎”產(chǎn)品指示你使用1的最大并行度(MAXOP)……
將承載 SharePoint 數(shù)據(jù)庫的 SQL Server 實例的最大并行度 (MAXDOP) 設(shè)置為 1 以確保單個 SQL Server 過程能夠為每個請求提供服務(wù)。
在你安裝完SQL Server后,DBA的真正工作才開始:你需要配置你的SQL Server安裝到你的硬件配置。在這篇文章里你已看到,SQL Server的默認(rèn)配置是明顯錯誤的。因此在安裝后立即修改一些配置選項非常重要。我已經(jīng)見過生產(chǎn)環(huán)境里SQL Server使用我這里提到的默認(rèn)選項,因為它們“稍后“會被配置,“稍后”就從未發(fā)生了……
關(guān)于SQL Server安裝完成后有哪些需要立即修改的配置選項就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。