Situación
- Almacén de datos en Sql Server 2008 Enterprise
- Montón de más de 36 millones de filas (no pregunte), con más de 60 columnas
- 750k agregados mensualmente
- No hay una clave primaria definida (ahora he identificado una)
- Sin compresión
Lo que estoy pensando hacer (en este orden)
- Agregar compresión a nivel de página
- Agrega la PK
- Agregar una cantidad de índices no agrupados
- Haz esto lo más rápido posible
Pregunta
- En definitiva: ¿agrego primero la PK o la compresión de página? (¿Importa?)
- Si agrego la compresión primero a la tabla, ¿algún índice heredará la configuración de compresión a nivel de tabla? La respuesta a esta pregunta en particular es "No, la compresión no se hereda", que se encuentra aquí en dba.stackexchange
A lo que me estoy inclinando en este momento
-- Add page level compression
alter table dbo.TableName
rebuild with (data_compression = page)
;
go
-- Add primary key
alter table dbo.TableName
add constraint PK_TableName
primary key clustered (<Columns>)
;
go
-- Add NC_IXs here
...
...
He buscado aquí (documentación de creación de PK) y aquí (documentación de ALTER TABLE) , pero no puedo ver nada definitivo sobre si algún índice hereda o no la configuración de compresión de la tabla. La respuesta a esta pregunta en particular es "No, la compresión no se hereda", que se encuentra aquí en dba.stackexchange