SQL Serve裡你總要去改變的3個配置選項

2022-02-14 10:26:48 字數 2546 閱讀 6714

你用安裝嚮導安裝了全新的sql server,最後你點選了完成按鈕。哇噢~~~現在我們可以把我們的伺服器進入生產了!抱歉,那並不是真的,因為你的全新sql server預設配置是錯誤的。

是的,你沒看錯:sql server的預設安裝在很多方面的配置是錯誤的。在今天的文章裡,我想給你展示下,為了更快的效能,在sql server安裝完成後3個你需要立即修改的配置選項。我們開始吧!

現在在你面前你應該i有個64位的sql server。64位意味著你可以理論上訪問2^64的記憶體大小——那是16艾位元組(10億gb)!因為這些巨量的記憶體,計算機**商當前限制64位系統的位址匯流排「只有」48位——完全64位沒有真正意義。用48位的位址空間,你可以訪問256tb的記憶體——那還是大量的空間。

你可以使用最大伺服器記憶體配置選項來配置sql server可以消耗的記憶體大小。下圖顯示的是在64位系統上sql server預設安裝後的配置選項。

從剛才的你可以看到,sql server預設配置是可以消耗上至2147483647mb的記憶體——那是2千兆!嗯,用48位的位址匯流排我們只能物理訪問256tb的記憶體,現在sql server可以消耗上至2千兆的記憶體?這裡有什麼東西不對……最大伺服器記憶體設定比32位最大整形值還大——2147483647。沒別的。因此sql server可以消耗比實體地址更多的記憶體?這是乙個很不好的預設配置。sql server預設可以吃光你整個物理記憶體!

你總應該改變這個配置選項,這樣的話你可以給系統一些記憶體,讓它可以活著喘氣。一般來說(在伺服器上沒有其它程式/程序)你應該系統至少10%的物理記憶體。這就是說你需要調低最大伺服器記憶體設定。有64gb的物理記憶體我會配置最大伺服器記憶體為56gb,這樣的話系統可以用剩下的8g來消耗和工作。

下乙個你需要修改的配置選項是sql server處理並行開銷的閾值。並行意味著sql server能透過多個工作執行緒執行執行計畫裡的運算子。並行的目的是提高你查詢的吞吐量。sql server裡第1個影響並行的配置選項是所謂的並行開銷閾值

這裡你配置的數字定義查詢成本,查詢優化器用它來找更便宜的並行執行計畫。如果找到的並行計畫更便宜,這個計畫會被執行,不然序列計畫會被執行。從剛才的圖你可以看到,sql server預設配置使用5的成本閾值。當你的序列計畫查詢成本大於5,然後查詢優化器再次執行查詢優化來找更便宜並行執行計畫的可能。

遺憾的是,5的成本值當下來說是個很小的數字。因此sql server太快嘗試並行你的執行計畫。當你處理更大的查詢並行才有意義——例如報表或資料倉儲情形。在純oltp情形下,並行計畫象徵著糟糕的索引設計,因為當你有缺失索引時,sql server需要掃瞄你的整個聚集索引(在與過濾(filter)和剩餘謂語(residual predicate)組合裡),因此你的查詢成本越來越大,它們穿過成本閾值,最後查詢優化器給你並行計畫。當人們看到並行計畫時,總會擔心!但問題根源是缺失非聚集索引。

對於並行的成本閾值,我總推薦至少20,甚至50。那樣的話,你確保sql server只為你對更大的查詢進行並行。即使在你面前有個並行計畫,你也應該考慮下可否通過增加乙個支援的非聚集索引來是這個查詢成本更低。另外,cxpacket並不象徵著在你的系統裡你有並行問題!

當在sql server裡乙個執行計畫進入並行,最大並行度定義了執行計畫裡每個並行運算子可用工作執行緒。下圖顯示了這個選項的預設配置。

如你所見,sql server使用預設值0。這個值意味著sql server嘗試並行化你的執行計畫穿過分配給sql server的所有cpu核心(預設情況所有核心都分配給sql server!)。你應該能看出這樣的設定沒有意義,尤其當你有大量cpu核心的系統。並行化本身帶來負擔,一旦你使用越多的工作執行緒,這個負擔越大。

乙個建議是設定最大並行度為在乙個numa結點裡擁有的核心數。因此在查詢執行時,sql server會嘗試在乙個numa結點裡保持並行計畫,這也會提高效能。

有時你也會看到建議去設定最大並行度為1。這個是不好的建議,因為這個使你的「整個」sql server 單執行緒!即使維護操作(例如索引重建)已單執行緒執行,這會嚴重傷及效能!當然也有一些「獲獎」產品指示你使用1的最大並行度(maxop)……

將承載 sharepoint 資料庫的 sql server 例項的最大並行度 (maxdop) 設定為 1 以確保單個 sql server 過程能夠為每個請求提供服務。

在你安裝完sql server後,dba的真正工作才開始:你需要配置你的sql server安裝到你的硬體配置。在這篇文章裡你已看到,sql server的預設配置是明顯錯誤的。因此在安裝後立即修改一些配置選項非常重要。我已經見過生產環境裡sql server使用我這裡提到的預設選項,因為它們「稍後「會被配置,「稍後」就從未發生了……

因此今天請幫自己乙個忙,為最大效能和吞吐量配置你的sql server!

感謝關注!

你為什麼要去做微商?

組織型微商,大家聚集到一起分銷產品,就像現實中的 完美 一樣 說到完美有很多人會想到傳銷,到至少完美這個產品是可以銷售的 是安全的 但微商你對你買的產品了解多少?此時的微商們已經不管怎麼多了,貪婪已經讓他們迷失了方向,但怎麼好的起步機會誰又會拒絕?不用備貨 不用發貨只需要你去賣商品,還有散客收集,組...

別說你要去搬磚了,你能贏得了機械人?

在 搶工作 這條suwrpur路子上,機械人從來沒有停止過。而現在,它們連 搬磚 都不放過。據 business insider 報道,澳大利亞公司 fastbrick 推出的這款砌磚機械人 hadrwww.cppcns.comian x 兩天就能建一座房子。這個建築機械人 hadrian x 有 ...

總要有些話讓你繼續往前走不是嗎

現象丟擲 如何強迫自己不斷學習提公升 看過更大的世界後,就再也不甘心留在原地,不甘心就是動力。如何走出人生的陰霾 多走幾步。讀過很多書 學過很多知識,後來大部分忘記了,那麼閱讀 學習的意義是什麼 當我還是個孩子的時候,我吃過很多的食物,現在已經記不起來吃過什麼了。但可以肯定的是,它們中的一部分已經成...