¿Hay algún inconveniente para definir columnas dispersas?
-
16-10-2019 - |
Pregunta
Tengo una tabla que tiene muchos valores nulos en las columnas. Pero algunas columnas no contienen nulos en absoluto (aunque anulables). ¿Hay algún inconveniente para declarar todas estas columnas como escasas?
Solución
Las columnas que son escasas pero que no tienen valores nulos en él ocuparán más espacio que una columna que no es de Sparse. Solo querrá usar una columna escasa cuando los datos sean realmente escasos.
Otros consejos
El mejor dibujo para mí llega a este mensaje de error a continuación:
Un índice comprimido no se admite en la tabla que contiene columnas dispersas o una columna de columna establecida
--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]
Al intentar aplicar DATA_COMPRESSION=PAGE
a un índice no agrupado.
puedes tener a sparser column
o data compression
en una mesa. para averiguar cuál sería mejor para cada mesa Mira esta respuesta.