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
Comment sécuriser une PME avec l’approche par les risques ?
Disposant de moyens financiers et humains contraints, les PME éprouvent des difficultés à mettre en place une véritable stratégie de cybersécurité. Opérateur de services et d’infrastructures, Naitways leur propose une approche pragmatique de sécurité « by design » en priorisant les risques auxquelles elles sont confrontées.