DICAS BANCO DE DADOS
Embora o uso de índices seja uma função básica para todos os principais SGBDs e ferramenta fundamental para a qualidade das consultas em banco de dados, é muito comum que desenvolvedores negligenciem seu uso. Um dos motivos é que normalmente as consultas SQL são confeccionadas durante o desenvolvimento dos sistemas, quando as tabelas possuem poucos registros. À medida que elas crescem em tamanho, problemas de performance começam a aparecer.
E se a professora pedisse para que procurasse alguma página que faça referência ao ex-presidente Getúlio Vargas? Sabendo que normalmente estes livros possuem índices remissivos no final, você então procura neste índice pelo nome “Getúlio Vargas”, olha em que página ele se encontra e folheia até ela. Um pouco mais trabalhoso, porém sem grandes dificuldades.
É importante perceber que, mesmo quando aplicamos um filtro em uma consulta e esta retorna um número reduzido de registros, não necessariamente será uma consulta eficiente.
Esta é a função dos índices no SQL Server e em outros SGBDs. Achar os registros com mais eficiência. Pode ser um SELECT, UPDATE ou DELETE, o SQL Server vai sempre tentar achar a forma mais rápida de executar uma QUERY.
Índices Clusterizados (Clustered Indexes)
O índice clusterizado, quando presente, é nada mais nada menos que a tabela em si, ordenado por uma ou mais colunas. Uma tabela só pode ter um (1) índice clusterizado.
Um índice clusterizado é criado automaticamente quando se é definida uma constraint do tipo PRIMARY KEY para uma ou mais colunas. Quando este índice é criado em uma (ou mais) coluna(s) que não garanta(m) sua unicidade, será criado internamente um identificador único, chamado “uniqueifier”. Este índice é muito importante pois ele quando usado em conjunto com o índice não clusterizado (explicado em seguida), torna a consulta mais eficiente.
Índices Não Clusterizados (Non-Clustered Indexes)
Um índice não clusterizado é análogo ao índice . No SQL, quando criamos um