SQL Server調整因子

來源:互聯網
上載者:User
SQL Server表索引有一種使自己稀疏的特性,表越大並且訪問越頻繁,就越需要一個合適的調整因子。

  SQL Server表索引的填滿因數選項是最常見的針對索引的一種調優方法。索引的填滿因數是一個百分比,用於告訴SQL Server每個葉級索引頁可以填充多少索引資料,多少空間應該保留作為成長空間。如果基礎資料表的列被修改或列被添加或在表中添加資料時,那麼就會發生擴充。隨著時間的推移索引片段在增長,或者索引效能表現不佳,這是一個標誌你可能需要調整最常用表的索引填滿因數。問題是如何進行調整。

  首先,你必須做的是避免發生這類狀況,手動設定一個執行個體級的填滿因數,也就是說填滿因數將影響給定SQL Server執行個體中的所有表。原因很簡單:每張SQL Server表都有自己的操作特性,有其自身的需要。填滿因數預設設定為100% 。預設情況下,它可以隨時間調整就像調整資料庫效能一樣。

  第二件要記住的事情:有可能在很多執行個體中不需要調整填滿因數。對只有幾頁的索引不必費心(使用DBCC SHOWCONTIG命令可知),反正這些索引都會被緩衝起來。首先確認索引的最大頁數和低掃描密度(使用DBCC SHOWCONTIG命令可知)。一個只有12頁和50%密度的索引所產生的問題要遠遠小於一個有7000頁和同樣密度的索引。

  第三,要明確需要調整多大,應該向什麼方向調整,因為沒有一個神奇數字可以滿足所有的需求。填滿因數設定太高,就會浪費大量的空間以及被拆分成單頁。填滿因數設定太低,資料庫大小的增加會導致大量的輸入/輸出操作從而影響效能。

  Randal建議開始的時候把70%作為預設值使用一個星期左右,然後根據變化的結果向上或向下調整這個值。在這方面SQL Server效能計數器(sys.dm_os_performance_counters)Page Splits/sec就是一個很大的協助;計數器值越高,越需要對SQL Server表索引進行調優。

  也有人建議,填滿因數的設定取決於有問題表的讀/寫率,低更新(頻繁讀)的表使用高填滿因數,反之亦然。因此,填滿因數值不應低於60%-70%,除非你有一些極不尋常的使用方式情節,一般情況下都是寫的數量級多於讀。

  另一個建議是:如果只是將資料添加到表的末尾,那麼填滿因數不能設定為0或100%。根據我的經驗,追加方式操作的表通常受益於90%的填滿因數,如果沒有大量的更新操作,只需要空出足夠的索引成長空間即可。

  SQLTeam.com的Tara Kizer也談到填滿因數的更改如何會降低SELECT的效能,以及任何更改填滿因數的動作必須要有週期性資料庫效能審計。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.