(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa
SQL Server
SQL Server 2 min

Como criar um índice não clustered no SQL Server

João Barros 12 de March de 2024 2 min de leitura

Consultas lentas no SQL Server têm quase sempre a mesma causa: falta de um índice adequado. Um índice não clustered é a forma mais rápida de acelerar pesquisas por colunas que não fazem parte da chave primária.

Pré-requisitos

  • SQL Server (2016 ou superior) e o SQL Server Management Studio (SSMS) ou o Azure Data Studio.
  • Permissões de ALTER na tabela onde vais criar o índice.
  • Uma tabela com dados suficientes para notar a diferença (alguns milhares de linhas).

Passo 1: Identificar a coluna a indexar

Escolhe a coluna usada com frequência em cláusulas WHERE ou JOIN. Neste exemplo vamos indexar a coluna Email da tabela Clientes.

Como criar um índice não clustered no SQL Server

Passo 2: Criar o índice não clustered

Usa a instrução CREATE NONCLUSTERED INDEX, dando um nome descritivo ao índice:

CREATE NONCLUSTERED INDEX IX_Clientes_Email
    ON dbo.Clientes (Email);

Se as consultas devolvem mais colunas, inclui-as com INCLUDE para criares um índice de cobertura:

CREATE NONCLUSTERED INDEX IX_Clientes_Email_Inc
    ON dbo.Clientes (Email)
    INCLUDE (Nome, Telefone);

Passo 3: Confirmar que a consulta usa o índice

Ativa o plano de execução real no SSMS (Ctrl+M) e corre a consulta:

SELECT Nome, Telefone
FROM dbo.Clientes
WHERE Email = 'ana@exemplo.pt';

Verificar o resultado

No plano de execução deves ver um Index Seek sobre IX_Clientes_Email em vez de um Table Scan. O Index Seek significa que o SQL Server salta diretamente para as linhas certas — muito mais rápido.

Conclusão

Criar o índice certo é a otimização com melhor retorno no SQL Server. Indexa as colunas que realmente filtras e evita indexar tudo — cada índice acelera as leituras mas torna as escritas um pouco mais lentas. Qual das tuas consultas mais lentas ganharia com um índice hoje?

Partilhar: