Bonjour à tous,
J'ai travaillé sur un SQL modérément complexe pour «obtenir» certaines données d'une base de données de produits tiers, pour les afficher dans nos propres applications internes.
J'ai ajouté une sélection pour obtenir l'enregistrement supérieur d'une table dans une sous-requête (si cela a du sens)
la requête a pris près de 3 minutes pour renvoyer un jeu de résultats final de 100 enregistrements en utilisant
SELECT TOP 1 ...
J'ai cherché en ligne des améliorations à ce que j'essayais de réaliser et il m'a été suggéré de modifier ma sélection pour utiliser une variable, comme ci-dessous
DECLARE @topCount INT
SET @topCount = 1
SELECT TOP (@topCount) ...
Cela a pris la même requête des 3 minutes à 1 seconde, ce qui est génial!
Mais quelqu'un peut-il expliquer pourquoi il en est ainsi?
la source
top 1
.