Tabela de tamanho onde colocar um índice começa a fazer sentido
-
25-09-2019 - |
Pergunta
Eu tenho um Calendário de mesa com cerca de 2 linhas.Esta é uma tabela de pesquisa, e será usado em várias associações.
As colunas são
CalendarId (PK, Clustered)
DateTimeValue
IsWeekDay
IsWeekend
IsHoliday
A minha pergunta é esta:Eu quero ter um índice DateTimeValue.
Quando devo criar este índice?
Em outras palavras, como o tamanho de uma tabela tem que ser antes de colocar um índice?
Solução
Você adiciona o índice ao criar a tabela, antes que a primeira linha seja inserida. A indexação faz parte do design do modelo de dados, não uma reflexão tardia quando os dados começam a mostrar problemas.
Um índice ausente em uma tabela vazia ainda é um índice ausente.
Outras dicas
Você quer ter certeza de ter um índice sobre as coisas que você é necessário, não deseja "esperar" até que se torne um problema ... a essa altura, você perdeu tempo.
Mas, ao mesmo tempo, não crie um índice apenas para criar um, verifique se faz sentido para o aplicativo.
Por exemplo, dependendo da sua operação, acho que você pode ser "mais eficiente" para se agrupar no DatetimeValue, pois acho que você tem 1 entrada por dia.
Sempre adicione o índice para iniciar. Uma mesa nunca é também pequena ter um índice. Um índice se torna apenas um problema quando você tem uma tabela muito grande, pois inserções/atualizações/exclusão podem desacelerar.
Acho que o "DateTimeValue" seria a chave natural nesta tabela?Ele deve ter um índice exclusivo desde o início.
Em relação a outros campos, é improvável que os índices em IsWeekDay ou IsWeekend vai ser usado pelo otimizador, uma vez que têm baixa seletividade (IsWeekDay retorna 71% das linhas).
Editar Note também que esta é basicamente uma tabela somente leitura.Você pode adicionar qualquer índices de você como se só afectam a gravação do desempenho de uma vez a cada poucos anos, quando você adicionar uma outra de anos de dados para ele.