Jaka jest różnica między połączeniem a sesją i jak są one powiązane?
źródło
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_connections
lub połączenia Service Broker sys.dm_broker_connections
.
#temp
tabele nie mogą być upuszczane ani wybierane z różnych otwartych kart plików, ponieważ mają zasięg sesji.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ą.
źródło
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.
źródło