Cómo crear un índice no clustered en SQL Server
Las consultas lentas en SQL Server casi siempre comparten la misma causa: falta un índice adecuado. Un índice no clustered es la forma más rápida de acelerar búsquedas por columnas que no forman parte de la clave primaria.
Requisitos previos
- SQL Server (2016 o superior) y SQL Server Management Studio (SSMS) o Azure Data Studio.
- Permisos de
ALTERen la tabla donde vas a crear el índice. - Una tabla con datos suficientes para notar la diferencia (algunos miles de filas).
Paso 1: Identificar la columna a indexar
Elige la columna que aparece con frecuencia en cláusulas WHERE o JOIN. En este ejemplo vamos a indexar la columna Email de la tabla Clientes.

Paso 2: Crear el índice no clustered
Usa la instrucción CREATE NONCLUSTERED INDEX, dando un nombre descriptivo al índice:
CREATE NONCLUSTERED INDEX IX_Clientes_Email
ON dbo.Clientes (Email);
Si tus consultas devuelven más columnas, inclúyelas con INCLUDE para crear un índice de cobertura:
CREATE NONCLUSTERED INDEX IX_Clientes_Email_Inc
ON dbo.Clientes (Email)
INCLUDE (Nome, Telefone);
Paso 3: Confirmar que la consulta usa el índice
Activa el plan de ejecución real en SSMS (Ctrl+M) y ejecuta la consulta:
SELECT Nome, Telefone
FROM dbo.Clientes
WHERE Email = 'ana@exemplo.pt';
Verificar el resultado
En el plan de ejecución deberías ver un Index Seek sobre IX_Clientes_Email en lugar de un Table Scan. El Index Seek significa que SQL Server salta directamente a las filas correctas — mucho más rápido.
Conclusión
Crear el índice correcto es la optimización con mejor retorno en SQL Server. Indexa las columnas que realmente filtras y evita indexar todo — cada índice acelera las lecturas pero hace las escrituras un poco más lentas. ¿Cuál de tus consultas más lentas se beneficiaría de un índice hoy?