[Débutant] T-SQL : remplacement de curseurs
Bonjour à tous,
Voilà peu de temps que j'utilise le T-SQL :oops:, et je me retrouve bloqué sur le sujet suivant : j'ai créé une procédure stockée avec des curseurs et je trouve que le temps d'exécution est trop long.
Après avoir regardé sur internet et google, j'ai vu des solutions qui permettent de s'affranchir de l'utilisation des curseurs, qui sont gourmands en ressources (en utilisant la condition while exists) ,mais je n'arrive pas à l'appliquer dans mon cas (j'ai les "mauvaises" habitudes du développement procédurale -> opérations itératives) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| BEGIN TRANSACTION
DECLARE Curseur CURSOR FOR
SELECT Nom, COUNT(NumeroIntervention), FluxID
FROM @table_temporaire
GROUP BY Nom, FluxID
OPEN Curseur
FETCH NEXT FROM Curseur INTO @nom, @qte, @FluxID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO @ReturnTable(Operateur, Traites, FluxID) VALUES (@nom, @qte, @FluxID)
FETCH NEXT FROM Curseur INTO @nom, @qte, @FluxID
END
CLOSE Curseur
DEALLOCATE Curseur
COMMIT TRANSACTION |
J'utilise le même genre de code pour remplir d'autres colonnes de la table @ReturnTable dans la même procédure stockée, également avec des curseurs, ce qui doit encore alourdir le temps de traitement.
Pourriez-vous m'aider à m'affranchir de l'utilisation des curseurs ?
D'avance Merci de votre aide.