> Tech > III. Utiliser plutôt les RPC que les requêtes dynamiques

III. Utiliser plutôt les RPC que les requêtes dynamiques

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Par exemple considérez les exécutions d’une procédure stockée avec différents paramètres passés à chaque exécution. Si nous exécutions des requêtes dynamiques comme ci-dessous :

Exec master.dbo.test_proc 1, 1000;
.
.
.
Exec master.dbo.test_proc 99, 99000;
Exec

III. Utiliser plutôt les RPC que les requêtes dynamiques

master.dbo.test_proc 100, 100000;
Go

Selon le nombre d’exécutions des procédures stockées nous pouvons cacher le lot. Maintenant, si les exécutions suivantes des procédures stockées ont différentes valeurs de paramètre, nous allons complètement remplir le cache avec une très faible probabilité de réutilisation des plans et provoquer une pression mémoire inutile sur le système.

Cette situation peut être évitée en remplaçant ces requêtes dynamiques avec des exécutions en RPC des procédures stockées:

{call master.dbo.test_proc (1, 1000)}
.
.
.
{call master.dbo.test_proc (99, 99000)}
{call master.dbo.test_proc (100, 100000)}

Maintenant nous avons éliminé le problème de remplissage du cache et avons également un gain d’exécution avec les RPC. Un exemple:

SqlCommand command = connection.CreateCommand();
command.CommandText = " master.dbo.test_proc";
command.Parameters.Add("@id", SqlDbType.Int);
command.Parameters.Add("@val", SqlDbType.VarChar, 50);
command.Parameters[0].Value = 1; command.Parameters[1].Value = 1000;
command.ExecuteNonQuery();
command.Parameters[0].Value = 99;
command.Parameters[1].Value = 99000;
command.ExecuteNonQuery();

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez les dernières tendances et solutions IT autour des univers de Poste de travail, Affichage et Collaboration, Impression et Infrastructure, et notre nouveau dossier thématique sur l’éco-conception et les bonnes pratiques à adopter pour réduire votre impact environnemental.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010