Freigeben über


Kontextverbindungen im Vergleich zu regulären Verbindungen

Gilt für:SQL Server

Wenn Sie eine Verbindung mit einem Remoteserver herstellen, verwenden Sie immer reguläre Verbindungen anstelle von Kontextverbindungen. Wenn Sie eine Verbindung mit dem Server herstellen müssen, auf dem die gespeicherte Prozedur oder Funktion ausgeführt wird, verwenden Sie in den meisten Fällen Kontextverbindungen. Diese Methode bietet Vorteile wie die Ausführung im gleichen Transaktionsbereich und muss nicht erneut authentifiziert werden.

Darüber hinaus führt das Verwenden der Kontextverbindung in der Regel zu einer höheren Leistung und geringeren Ressourcenverwendung. Die Kontextverbindung ist eine rein prozessinterne Verbindung, sodass sie sich direkt an den Server wenden kann, indem das Netzwerkprotokoll und die Transportebenen umgangen werden, um Transact-SQL Anweisungen zu senden und Ergebnisse zu empfangen. Der Authentifizierungsprozess wird ebenfalls umgangen. Die folgende Abbildung zeigt die hauptkomponenten des SqlClient verwalteten Anbieters und wie die verschiedenen Komponenten bei Verwendung einer regulären Verbindung im Vergleich zur Kontextverbindung miteinander interagieren.

Diagramm der Codepfade eines Kontexts und einer regulären Verbindung.

Die Kontextverbindung folgt einem kürzeren Codepfad und schließt weniger Komponenten ein, sodass Sie mit schnelleren Anforderungen und Ergebnissen an den Server und vom Server rechnen können als bei einer regulären Verbindung. Die Abfrageausführungszeit auf dem Server ist bei Kontext- und reguläre Verbindungen die gleiche.

Es gibt einige Fälle, in denen Sie möglicherweise eine separate reguläre Verbindung mit demselben Server öffnen müssen. Beispielsweise gibt es bestimmte Einschränkungen für die Verwendung der Kontextverbindung, die unter Einschränkungen für Kontextverbindungen und reguläre Verbindungenbeschrieben wird.