Udostępnij za pośrednictwem


Połączenia kontekstowe a zwykłe połączenia

Dotyczy:programu SQL Server

Jeśli łączysz się z serwerem zdalnym, zawsze używaj połączeń regularnych, a nie połączeń kontekstowych. Jeśli musisz nawiązać połączenie z tym samym serwerem, na którym jest uruchomiona procedura składowana lub funkcja, w większości przypadków użyj połączenia kontekstowego. Ta metoda ma takie korzyści jak uruchamianie w tej samej przestrzeni transakcji i nie trzeba ponownie uwierzytelniać.

Ponadto użycie połączenia kontekstowego zwykle skutkuje lepszą wydajnością i mniejszym użyciem zasobów. Połączenie kontekstowe jest połączeniem tylko do przetwarzania, więc może skontaktować się z serwerem bezpośrednio, pomijając protokół sieciowy i warstwy transportu w celu wysyłania instrukcji Transact-SQL i odbierania wyników. Proces uwierzytelniania jest również pomijany. Na poniższej ilustracji przedstawiono podstawowe składniki dostawcy zarządzanego SqlClient oraz sposób interakcji różnych składników ze sobą podczas korzystania z zwykłego połączenia w porównaniu z połączeniem kontekstowym.

Diagram ścieżek kodu kontekstu i zwykłego połączenia.

Połączenie kontekstowe jest zgodne z krótszą ścieżką kodu i obejmuje mniej składników, dzięki czemu można oczekiwać, że żądania i wyniki będą wysyłane do i z serwera szybciej niż w zwykłym połączeniu. Czas wykonywania zapytań na serwerze jest taki sam w przypadku połączeń kontekstowych i regularnych.

Istnieje kilka przypadków, w których może być konieczne otwarcie oddzielnego zwykłego połączenia z tym samym serwerem. Istnieją na przykład pewne ograniczenia dotyczące używania połączenia kontekstowego opisane w Ograniczenia dotyczące połączeń kontekstowych i regularnych połączeń.