Buenos días a todos,
He estado trabajando en algunos sql moderadamente complejos para 'obtener' algunos datos de una base de datos de productos de terceros, para mostrarlos en nuestras propias aplicaciones internas.
Agregué una selección para obtener el registro superior de una tabla dentro de una subconsulta (si eso tiene sentido)
la consulta tardó casi 3 minutos en devolver un conjunto de resultados finales de 100 registros utilizando
SELECT TOP 1 ...
Busqué mejoras en línea para lo que estaba tratando de lograr y me sugirieron que cambiara mi selección para usar una variable, como se muestra a continuación.
DECLARE @topCount INT
SET @topCount = 1
SELECT TOP (@topCount) ...
Esto tomó la misma consulta de 3 minutos a 1 segundo, ¡lo cual es genial!
Pero, ¿alguien puede explicar por qué es así?
fuente
top 1
.