Sql-Server-2008
空間索引壓縮
我希望在空間索引上打開頁面壓縮。實例為 2008 Enterprise。該索引預先存在於供應商提供的應用程序中。在通過 BOL 搜尋時,它指出壓縮和填充因子都是允許的。
ALTER INDEX [ix_city_citypoint] on city REBUILD WITH (FILLFACTOR = 90, DATA_COMPRESSION = PAGE)
消息 153,級別 15,狀態 4,第 12 行
ALTER INDEX REBUILD 語句中選項 data_compression 的使用無效。
原創創作:
CREATE SPATIAL INDEX [ix_city_citypoint] ON [dbo].[city] ( [citypoint] )USING GEOGRAPHY_GRID WITH (GRIDS =(LEVEL_1 = MEDIUM,LEVEL_2 = MEDIUM,LEVEL_3 = MEDIUM,LEVEL_4 = MEDIUM), CELLS_PER_OBJECT = 16, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF , SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF , ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [primary] GO
我總是可以忽略索引,因為它很小,但現在它變成了那些“可教”的時刻之一。感謝您的任何見解
你的語法
ALTER INDEX...REBUILD WITH (DATA_COMPRESSION...)
是正確的。該問題實際上在錯誤消息中顯示:ALTER INDEX REBUILD 語句中選項 data_compression 的使用無效。
對於 SQL Server 2008 中的空間索引,不支持使用 data_compression 選項。根據Microsoft 文件,在 SQL Server 2012 中為空間索引添加了對數據壓縮的支持:
DATA_COMPRESSION = {無 | 行 | 頁}
適用於:SQL Server 2012 到 SQL Server 2017、SQL 數據庫。
如果/當您升級到較新版本的 SQL Server 時,您的原始
ALTER INDEX
語句將使用PAGE
壓縮來重建索引。或者,正如@AaronBertrand 在評論中指出的那樣,您也可以使用CREATE...WITH (DROP_EXISTING=ON, DATA_COMPRESSION=PAGE...
來更改壓縮設置,但這需要重新提供整個索引定義,其中ALTER
只需要指定您正在更改的選項。