Depois de ler as Perguntas e respostas deste site sobre índices, uma pergunta veio à minha mente.
E se, estiver usando uma tabela de dimensão de tempo com o menor nível de granularidade sendo o dia. Onde se deve colocar os índices?
Randy Melder na pergunta: O que significa "índice" no RDBMS? disse :
Pense em um índice como "índice" ... que é uma lista ordenada de ponteiros para posições em um arquivo, também conhecido como deslocamentos
No caso da dimensão de tempo, a maioria das pesquisas de dados pode ser feita para um dia específico, uma semana específica, um mês específico ou um trimestre específico se o horário armazenar todo o dia durante um ano único .
Minha pergunta é: deve-se colocar índices para todos esses campos?
O dia deve ser único, portanto, para este, eu entendo perfeitamente o uso de índices. Mas uma identificação de semana terá 7 ocorrências , uma identificação de mês terá 30/31 ocorrências , uma identificação de trimestre terá mais ou menos 120 ocorrências .
- Ainda se deve colocar índices para esses campos?
- Ainda será útil?
Estou lhe perguntando isso porque, na mesma pergunta, David Spillett disse:
Adicionar índices demais pode ser uma otimização ruim, é claro, pois o espaço extra usado para armazenar os índices (e a carga de IO para mantê-los se o seu banco de dados vê muitas operações de gravação) pode ser um problema pior do que as consultas de leitura um pouco menos ideais , então não exagere.
Então, quais seriam as melhores considerações para o caso da dimensão temporal?