Bonjour,
Alors tout est un peut dit dans le titre.
J'ai une vue qui me retourne ~200k lignes en 60 secondes.
Je dois cependant ajouter un appelle avec un fonction scalaire qui prend <1 seconde pour un appel unique.
Cependant lorsque j'ajoute la fonction à ma vue, elle semble être exécutée à chaque ligne, bien que le paramètre soit contant.
quelqu’un a une idée ?
Je ne peux malheureusement pas fournir le codes exactes mais l'exemple suivant est suffisamment représentatif.
Résultat en ~1 minute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM <La table avec 200 k lignes>
S’exécute les 200'000 fois en ~4 minutes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Declare @bidon Varchar(max) SELECT @Bidon = dbo.LaFonction('Avec un paramètre en dur') GO 200000
Coupé au bout de 20 minutes avec un résultat de 7 ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT *, dbo.LaFonction('Avec un paramètre en dur') FROM <La table avec 200 k lignes>
Partager