Pregunta

Tengo una tabla con ~ 200 millones de filas y ~ 15 columnas en ella. Estoy planeando crear un COLUMNSTORE índice en mi tabla.

¿Habrá algún cambio en el rendimiento basado en el orden de las columnas que uso en el índice de columna columna? En caso afirmativo, ¿cuál es la lógica detrás de esto?

¿Fue útil?

Solución

No, el orden no importa. Cada columna se considera individualmente.

Desde el equipo de SQL Server (énfasis añadido):

Por lo general, querrá poner todas las columnas en su tabla en el índice de columna. No importa en qué orden enumere las columnas Porque un índice de columna no tiene una clave como lo hace un índice B-Tree. Internamente, los datos se reordenarán automáticamente para obtener la mejor compresión.

Otros consejos

El pedido no importa, qué importa si debe incluir todas las columnas de la tabla base en el índice de la tienda de columnas, más a través de mi respuesta anterior a esta pregunta aquí

En SQL Server 2012-2016 tiene el concepto de eliminación del segmento (http://social.technet.microsoft.com/wiki/contents/articles/5651.understanding-segment-elimination.aspx) y en realidad puede forzar el orden de al menos 1 columna (más 1 extra dentro de cada una de la partición).

Considere el siguiente artículo que explica la carga de datos para una mejor eliminación del segmento: Carga de datos para una mejor eliminación de segmento

Hay un existente Gran respuesta de Aaron desde 2012, para expandir eso ...

Con SQL 2014+, tiene los índices de Stora de columnas disponibles disponibles. Al crear un índice agrupado de la tienda de columnas, no hay opciones de selección de columna ni opciones de pedido disponibles. Índices de la tienda de columnas descritos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top