我想將SQL插入到表格中,以儘可能避免碎片來優化頁面的使用。 我將運行一個.net Windows服務,每2小時將從數據庫獲取一些數據,並將其優化爲 以供將來查詢。涉及一個varchar(6000)列,但我估計它很少會超過4000字節。 實際上,此列在600到2400之間可以正常變化。 它有助於避免截斷錯誤。我仍然可以通過.net控制列的大小。 不會有更新或刪除。只需選擇(並插入每2小時)。 每2小時將會有大約1000個插頁。在這種情況下如何避免sql server頁面碎片?
我使用Sql Server 2005.頁面大小據說是8096字節。 我需要在表格中插入行。考慮到行的大小,4到12行可以適合頁面。
因此.net我會從數據庫中讀取數據,將其存儲在內存中(可能使用某種聚類算法?),並插入大約1000行。
我想知道是否有辦法避免或最小化這種情況下的頁面碎片。
我使用Btree,int上的聚簇索引以及2個smalldatetimes和int列(備用鍵)上的非聚簇索引,這一個將用於主對等查詢。 我沒有提前閱讀。我關心空間。爲了合法目的,我計劃將歷史信息存儲至少10年,所以我試圖避免因分散而浪費空間。這是一個新的表格,我想正確地做。也許,正如你所說,我不應該在乎它,但我不確定你說的其他途徑是什麼。我希望這個評論能幫助更多。謝謝。 – user347594 2010-07-14 02:05:16
壓縮是要走的路,走SQL 2008,它比任何有關碎片的方法都更有用。例如,使用分區重建每個分區的填充因子100,每月一次。 – 2010-07-14 02:23:28