Después de leer las preguntas y respuestas de este sitio web sobre índices, me vino a la mente una pregunta.
¿Qué pasa si uno está usando una tabla de dimensiones de tiempo con el nivel más bajo de granularidad siendo el día? ¿Dónde se deben poner los índices?
Randy Melder en la pregunta: ¿Qué significa "índice" en RDBMS? dijo :
Piense en un índice como "tabla de contenido" ... que es una lista ordenada de punteros a posiciones en un archivo, también conocido como compensaciones
En el caso de la dimensión de tiempo, la mayoría de la investigación de datos se puede realizar para un día específico, una semana específica, un mes específico o un trimestre específico si la tabla de tiempo almacena todo el día para un año único .
Mi pregunta es: ¿se deben poner índices para todos esos campos?
Se supone que Day es único, así que para este entiendo perfectamente el uso de índices. Pero una identificación de la semana tendrá 7 ocurrencias , una identificación del mes tendrá 30/31 ocurrencias , una identificación del trimestre tendrá más o menos 120 ocurrencias .
- ¿Debería uno poner índices para esos campos?
- ¿Seguirá siendo útil?
Te pregunto eso porque en la misma pregunta, David Spillett dijo:
Por supuesto, agregar demasiados índices puede ser una mala optimización, ya que el espacio adicional utilizado para almacenar los índices (y la carga de E / S para mantenerlos si su DB ve muchas operaciones de escritura) puede ser un problema peor que las consultas de lectura ligeramente menos óptimas , así que no lo hagas en exceso.
Entonces, ¿cuáles serían las mejores consideraciones para el caso de la dimensión temporal?