Partager via


Connexions contextuelles et connexions régulières

S'applique à : SQL Server

Si vous vous connectez à un serveur distant, utilisez toujours des connexions normales plutôt que des connexions contextuelles. Si vous devez vous connecter au même serveur sur lequel la procédure stockée ou la fonction est en cours d'exécution, utilisez la connexion contextuelle dans la majorité des cas. Ceci présente des avantages, notamment l'exécution dans le même espace de transaction et la non-obligation de s'authentifier à nouveau.

Qui plus est, le recours aux connexions contextuelles produit généralement de meilleures performances et garantit une utilisation plus réduite des ressources. La connexion de contexte est une connexion in-process uniquement. Elle peut donc contacter le serveur « directement » en contournant le protocole réseau et les couches de transport pour envoyer des instructions Transact-SQL et recevoir des résultats. Le processus d'authentification est également ignoré. La figure suivante montre les principaux composants du fournisseur managé SqlClient , ainsi que la façon dont les différents composants interagissent entre eux lors de l’utilisation d’une connexion régulière et lors de l’utilisation de la connexion de contexte.

Chemins de code d’un contexte et d’une connnection régulière.

La connexion contextuelle suit un chemin de code plus court et implique moins de composants. Vous pouvez donc vous attendre à des demandes et des résultats circulant vers et depuis le serveur plus rapidement qu'avec une connexion normale. Le temps d'exécution des requêtes sur le serveur est le même pour les connexions normales et contextuelles.

Dans certains cas, vous devrez peut-être ouvrir une connexion normale distincte sur le même serveur. Par exemple, il existe certaines restrictions sur l’utilisation de la connexion de contexte, décrites dans Restrictions sur les connexions régulières et contextuelles.

Voir aussi

Connexion contextuelle