Um índice é uma estrutura de dados que permite a busca de um registro em um arquivo de dados. Ele é composto por uma chave e um ponteiro para o registro correspondente. A chave é um valor que identifica o registro e o ponteiro é o endereço do registro no arquivo de dados.
| Índice clusterizado | Índice não-clusterizado |
|---|---|
| determina a ordem física das linhas da tabela | |
| chaves necessariamente exclusivos (unique) | chaves não são necessariamente exclusivos (unique) |
| pode ser aplicado apenas a uma coluna | |
| sabe o ID + todas as outras colunas da tabela | sabe sua própria coluna + coluna do índice clustered |
***Para tirar vantagem de um índice, deve-se utilizar pelo menos a coluna mais à esquerda no filtro Quando uma consulta precisa ser realizada a partir de um índice não-clusterizado (seek) e obter dados além daqueles possíveis ao seu índice, é realizada uma segunda consulta a partir do indice-clusterizado (lookup) para ser possível concluir a consulta
Tabelas sem índice clustered é uma heap
https://medium.com/@dev.daniel.amorim/sql-índices-d82220f01176