Jaka jest różnica między połączeniem a sesją?

51

Jaka jest różnica między połączeniem a sesją i jak są one powiązane?

jrara
źródło

Odpowiedzi:

54

Połączenie to fizyczny kanał komunikacji między programem SQL Server a aplikacją: gniazdo TCP, nazwany potok, region pamięci współużytkowanej. Sesja w SQL Server odpowiada definicji sesji w Wikipedii : półstały kontener stanu do wymiany informacji. Innymi słowy, sesje przechowują ustawienia, takie jak pamięć podręczna danych logowania, aktualny poziom izolacji transakcji, wartości na poziomie sesjiSET itp.

Zwykle jest jedna sesja na każdym połączeniu, ale może istnieć wiele sesji na jednym połączeniu ( Wiele aktywnych zestawów wyników , MARS) i są sesje, które nie mają połączenia ( procedury aktywowane SSB , sesje systemowe ). Istnieją również połączenia bez sesji, a mianowicie połączenia używane do celów innych niż TDS, takie jak dublowanie bazy danych sys.dm_db_mirroring_connectionslub połączenia Service Broker sys.dm_broker_connections.

Remus Rusanu
źródło
(oszałamiający hałas) Kiedy zdajesz sobie sprawę, że SSMS używa MARS, a zatem różnych sesji na każdej karcie otwartych plików, i dlatego #temptabele nie mogą być upuszczane ani wybierane z różnych otwartych kart plików, ponieważ mają zasięg sesji.
GibralterTop
4
  • Połączenie reprezentuje połączenie z serwerem za pośrednictwem sieci lub lokalnie poprzez pamięć współdzieloną.

  • Sesja reprezentuje proces użytkownika w SQL Server.

  • Połączenie może być połączone z zerową lub więcej niż jedną sesją.

Mihir
źródło
3

Można wyszukiwać w dynamicznych widokach zarządzania sys.dm_exec_sessions, aby uzyskać informacje o udanych i nieudanych logowaniach, gdy w wystąpieniu programu SQL Server 2012 włączona jest zgodność wspólnych kryteriów.

Widok dynamicznego zarządzania sys.dm_exec_connections zawiera informacje o połączeniach nawiązanych z instancją aparatu bazy danych. Nie można przesłać zapytania do tego dynamicznego widoku zarządzania, aby uzyskać informacje o udanych i nieudanych próbach logowania, gdy w wystąpieniu programu SQL Server 2012 włączona jest zgodność z typowymi kryteriami.

Phil Mccormack
źródło