¿Por qué hacer un top (1) en una columna indexada en SQL Server es lento?

Estoy confundido por lo siguiente. Tengo un DB con alrededor de 10 millones de filas, y (entre otros índices) en 1 columna (campaignid_int) es un índice.

Ahora tengo 700k filas donde el campaignid es de hecho 3835

Para todas estas filas, el id de conexión es el mismo.

Solo quiero descubrir esta conexión.

 use messaging_db;
 SELECT     TOP (1) connectionid
 FROM         outgoing_messages WITH (NOLOCK)
 WHERE     (campaignid_int = 3835)

¡Ahora esta consulta tarda aproximadamente 30 segundos en realizarse!

Yo (con mi pequeño conocimiento de db) esperaría que tomara cualquiera de las filas, y me devolvería esa conexión

Si pruebo esta misma consulta para una campaña que solo tiene 1 entrada, va muy rápido. Entonces el índice funciona.

¿Cómo abordaría esto y por qué esto no funciona?

editar:

estimated execution plan:

select (0%) - top (0%) - clustered index scan (100%)

Respuestas a la pregunta(7)

Su respuesta a la pregunta