Sql-Server-2014

在 SQL Server 2014 環境中處理不同的填充因子

  • May 29, 2018

我最近成為了我們公司 ERP 系統的 DBA。我一直在對伺服器進行一些小改動,並且改進一直很穩定。我關心的一個領域是索引填充因子。我發現了一個 Brent Ozar 做的關於索引碎片整理和填充因子的 YouTube 影片,這是最有洞察力的。我所有的填充因子目前都是 100%,但我知道這對我的所有索引都不好。我發現這篇文章/腳本是關於為某些索引確定更好的填充因子。如果這篇文章仍然適用,這給我帶來了我的問題:

我正在使用Ola Hallengren 腳本來幫助保持索引整潔,但我看不到單獨保留目前填充因子的方法。它將使用系統設置或指定的設置重建/etc,但如果不同,則不會使用目前設置。

如果需要使用特定/不同的填充因子重建索引,是否有人有他們使用的建議/實踐?

我不確定你為什麼認為這些是唯一的選擇。

如果您查看,預設情況下會傳入IndexOptimize@FillFactor變數。NULL

附加填充因子的命令如下所示:

IF @FillFactor IS NOT NULL AND @CurrentIsPartition = 0 AND @CurrentIndexType IN(1,2,3,4) 
SET @CurrentCommand13 = @CurrentCommand13 + ', FILLFACTOR = ' 
+ CAST(@FillFactor AS nvarchar)

如果將其保留為 NULL,則索引將以其目前的填充因子重建。

您唯一的任務是從代理作業等中刪除任何填充因子提示。

作為對 Erik 的回答的補充,我目前所做的是使用 CommandLog 表來查找無限索引碎片的模式並進行調整。

如果您正在部署索引維護,那麼您可以使用dbo.CommandLog找出哪些索引經常碎片化,碎片整理所需的時間,如果您加入 sys.indexes,那麼您可以綁定 FILL FACTOR 並對其進行調整。

有關更多詳細資訊,請參閱我的答案

引用自:https://dba.stackexchange.com/questions/208157