Pregunta

Tengo una tabla de calendario con unos 2K filas. Esta es una tabla de búsqueda, y se utiliza en muchas combinaciones.

Las columnas son

CalendarId (PK, Clustered)
DateTimeValue
IsWeekDay
IsWeekend
IsHoliday

Mi pregunta es la siguiente:. Quiero tener un índice en DateTimeValue

Cuando debo crear este índice?

En otras palabras, lo grande que hace una mesa tiene que ser antes de poner un índice en él?

¿Fue útil?

Solución

añadir el índice a medida que crea la tabla, antes de insertar la primera fila. La indexación es parte del diseño del modelo de datos, no una idea de último momento cuando los datos comienzan a mostrar problemas.

Un índice que faltan en una mesa vacía es todavía un índice de falta.

Otros consejos

Usted quiere asegurarse de que tiene un índice sobre las cosas a medida que se necesitan, que no quiere "esperar" hasta que se convierte en un problema .... por ese punto de haber perdido el tiempo.

Pero, al mismo tiempo, no crear un índice por el simple hecho de crear uno, asegúrese de que tiene sentido para la aplicación.

Por ejemplo, dependiendo de su operación, estoy pensando que podría ser "más eficientes" a agruparse en el DateTimeValue, como supongo que tiene 1 entrada por día.

Siempre añadir el índice de empezar. Una mesa nunca es demasiado pequeña para tener un índice. Un índice sólo se convierte en un problema cuando se tiene una tabla muy grande, como inserciones / actualizaciones / eliminaciones pueden reducir la velocidad.

supongo que "DateTimeValue" sería la clave natural en esta tabla? Se debe tener un índice único de principio.

En cuanto a los otros campos, es poco probable que los índices de IsWeekDay o IsWeekend serán utilizados por el optimizador, ya que tienen una baja selectividad (IsWeekDay devuelve 71% de las filas).

Editar También tenga en cuenta que esto es básicamente una tabla de sólo lectura. Se puede añadir lo que índices como, ya que afectará solamente siempre escritura rendimiento una vez cada pocos años cuando se agrega otro años de datos a la misma.

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