Freigeben über


Kontextverbindungen im Vergleich zu regulären Verbindungen

Gilt für: SQL Server

Wenn Sie eine Verbindung mit einem Remoteserver herstellen, verwenden Sie stets 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. Dies hat Vorteile, etwa das Ausführen im gleichen Transaktionsbereich, ohne dass eine erneute Authentifizierung erforderlich ist.

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 den Server "direkt" kontaktieren 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 primären Komponenten des verwalteten SqlClient-Anbieters sowie die Interaktion der verschiedenen Komponenten bei Verwendung einer regulären Verbindung und bei Verwendung der Kontextverbindung miteinander.

Codepfade eines Kontexts und einer regulären Konnection.

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.

In einigen Fällen müssen Sie möglicherweise eine separate reguläre Verbindung mit dem gleichen Server herstellen. Beispielsweise gibt es bestimmte Einschränkungen für die Verwendung der Kontextverbindung, die unter "Einschränkungen für reguläre verbindungen" und "Kontextverbindungen" beschrieben ist.

Weitere Informationen

Kontextverbindung