La logique de la procédure est simple : elle crée une connexion à la base de données dans laquelle réside la procédure stockée, elle charge l’ensemble de résultats de la requête vers un objet SqlDataReader intitulé reader et effectue une itération sur les enregistrements de l’objet reader, en ajoutant à
CRL ou T-SQL, à chacun sa spécialité (4)
chaque itération les valeurs de l’enregistrement courant au paramètre de sortie. Autrement dit, il s’agit d’une logique d’agrégation itérative simple. L’auteur de la procédure originale souhaitait probablement illustrer la syntaxe de création d’une procédure stockée CLR et l’utilisation des paramètres de sortie.
Néanmoins, une telle logique constitue un exemple classique de ce qu’il ne faut jamais faire dans .NET sans une bonne raison, par exemple si vous devez effectuer des calculs complexes (ou des manipulations plus judicieuses avec le code CLR) pour chaque enregistrement dans l’objet reader. Je présente ici des excuses à tous pour avoir signalé du code mal à propos dans la documentation en ligne, mais il est vital de comprendre qu’il s’agit précisément du type d’activité nécessitant T-SQL, pour des raisons de performances et de simplicité. Pour tester la procédure CLR, exécutez le code suivant :
DECLARE @sumqty AS BIGINT,
@sumprice AS MONEY;
EXEC dbo.usp_OrderDetailsTotals
@sumqty = @sumqty OUTPUT;
@sumprice = @sumprice OUTPUT;
SELECT @sumqty AS sumqty,
@sumprice AS sumprice;
Sur mon système, ce code s’est exécuté en un peu plus de 4 secondes. Dans T-SQL, vous n’avez pas besoin d’une procédure stockée pour cette tâche. La requête simple suivante suffit :
SELECT SUM(Quantity) AS sumqty,
SUM(UnitPrice) AS sumprice
FROM dbo.OrderDetails;
Cette requête s’est exécutée en une demi-seconde environ sur mon système, soit 8 fois plus rapidement qu’avec le code CLR. En utilisant une requête basée sur les ensembles, vous permettez à l’optimiseur d’accomplir ce qu’il fait de mieux : choisir un plan d’exécution efficace pour votre requête. Si vous employez le code interactif dans l’implémentation CLR, vous imposez un plan d’exécution spécifique et induisez le temps de traitement nécessaire à une manipulation enregistrement par enregistrement.
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Ready For IT 2026 : IA industrialisée, deepfakes et Prix Start-up au cœur des enjeux
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Ready For IT 2026 : quand l’accélération de l’innovation redessine les priorités des décideurs IT
- Microsoft Build 2026 : industrialiser l’IA agentique dans les environnements d’entreprise
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
