Sql-Server
填充因子設置和性能
從我讀到的內容來看,通常對於索引建議是將其保留
fill factor
在 70-80,這背後的邏輯似乎是新數據可能會插入到現有值之間的表中,因此fill factor
不應將其設置為 100。假設的使用者名範例,新名稱可能會添加到名稱欄位中,因此填充因子 100 可能會產生問題,因為即使頁面已滿,新數據也不會與其他數據適當地組織。我的問題涉及一個按日期(聚集索引)和 ID(非聚集索引)組織數據的表;每個訂單都有一個日期和一個 ID,因此現有訂單之間不會出現“新”訂單,現有 ID 之間也不會出現新 ID - 這些都是按順序發生的。對於這樣的表,從性能角度來看,將填充因子設置為 100 並將重新索引設置為 100 是否合適,這意味著由於現有數據之間不會出現新數據,因此將頁面填滿是否具有性能優勢?
你考慮過更新嗎?如果您更改一行並且新數據不適合相同的空間,則必須將該行移動到新頁面。如果您可以排除這種情況,將頁面填充到 100% 將減少表使用的空間並因此給您帶來輕微的性能提升。
預設填充因子為零,與 100 相同。根據產品文件,
填充因子值是從 1 到 100 的百分比,伺服器範圍的預設值為 0,這意味著葉級頁面已填充到容量。
試圖找到填充因子的最佳值是一個經過充分研究的問題。在所描述的場景中,除非表不使用預設值,否則沒有什麼可做的。