> Tech > V. Le texte des requêtes dynamiques doit être parfaitement identique

V. Le texte des requêtes dynamiques doit être parfaitement identique

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

Pour les requêtes dynamiques, le texte des requêtes doit être identique pour pouvoir être réutilisées. Des petites différences comme des caractères d'espace supplémentaires ou une différence de case dans le texte généreront des plans différents, et aucune réutilisation des plans cachés.

Les commentaires sont également considérés

V. Le texte des requêtes dynamiques doit être parfaitement identique

comme une partie du texte de la requête. Par conséquent les requêtes ci-dessous généreront deux plans cachés différents :

—this is an example of an adhoc query
if exists(Select Name From HumanResources.Department Where DepartmentID=10) declare @x int;
Go

—this is an example of an adhoc query with different comment
if exists(Select Name From HumanResources.Department Where DepartmentID=10) declare @x int;
Go

Utilisez la requête ci-dessous pour regarder le sql_handle et les plan_handles et pour noter qu’ils sont différents :

Select text, sql_handle, plan_handle
From sys.dm_Exec_query_stats qs Cross Apply sys.dm_Exec_sql_text(sql_handle)
Where text like ‘—this is an example %’
Go

Voir listing 3.
Attention aussi aux options positionnées lors de l’exécution des requêtes. Par exemple, OSQL positionne Quoted_ Identifier a ON alors que SQL Server Management Studio positionne Quoted_Identifier à OFF. Des requêtes identiques exécutées depuis ces différents clients auront des plans différents.

Téléchargez cette ressource

Sécuriser votre système d’impression

Sécuriser votre système d’impression

Longtemps sous-estimée, la sécurisation d’un système d’impression d’entreprise doit être pleinement prise en compte afin de limiter le risque de fuite d’informations sensibles. Voici les 3 principales précautions à prendre.

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