Sql-Server
定義 SPARSE 列是否有一些缺點?
我有一個表,它的列中有很多 NULL 值。但是有些列根本不包含 NULL(儘管可以為空)。將所有這些列聲明為 SPARSE 是否有一些缺點?
SPARSE 但其中沒有 NULL 值的列將比非 SPARSE 列佔用更多空間。當數據實際上是稀疏的時,您只想使用 SPARSE 列。
對我來說最大的缺點是下面的錯誤消息:
包含稀疏列或列集列的表不支持壓縮索引
--Msg 10622, Level 16, State 1, Line 15 --The index 'I_applicantID' could not be created or rebuilt. A compressed index is not supported on table that contains sparse columns or a column set column. CREATE NONCLUSTERED INDEX I_applicantID ON [app].[applicantSkill] ( [applicantID] ASC , [dateAdded] ASC ) INCLUDE ( [ApplicantSkillID] , [skillDetails] , [skillID] , [skillLevelID]) WITH ( PAD_INDEX = OFF, FILLFACTOR = 100 , SORT_IN_TEMPDB = OFF , IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ONLINE = OFF, DROP_EXISTING = ON, DATA_COMPRESSION=NONE, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ) ON [NONCLUSTERED_INDEXES]
嘗試應用於
DATA_COMPRESSION=PAGE
非聚集索引時。你可以有一個
a sparser column
或data compression
在桌子上。要找出哪個更適合您的每張桌子,請查看此答案。