Was ist der Unterschied zwischen einer Verbindung und einer Sitzung?

51

Was ist der Unterschied zwischen einer Verbindung und einer Sitzung und wie hängen sie zusammen?

jrara
quelle

Antworten:

54

Die Verbindung ist der physische Kommunikationskanal zwischen SQL Server und der Anwendung: der TCP-Socket, die Named Pipe und der gemeinsam genutzte Speicherbereich. Die Sitzung in SQL Server entspricht der Wikipedia-Definition einer Sitzung : einem semipermanenten Zustandscontainer für einen Informationsaustausch. Mit anderen Worten : die Sitzungen speichern Einstellungen wie Cache Ihrer Login - Informationen, aktuelle Transaktionsisolationsstufe, Session - Ebene SETWert etc etc.

Normalerweise gibt es eine Sitzung für jede Verbindung, es kann jedoch mehrere Sitzungen für eine einzelne Verbindung geben ( Multiple Active Result Sets , MARS) und es gibt Sitzungen ohne Verbindung ( SSB-aktivierte Prozeduren , Systemsitzungen ). Es gibt auch Verbindungen ohne Sitzungen, d. H. Verbindungen, die für Nicht-TDS-Zwecke verwendet werden, z. B. Datenbankspiegelung sys.dm_db_mirroring_connectionsoder Service Broker-Verbindungen sys.dm_broker_connections.

Remus Rusanu
quelle
(überwältigendes Rauschen) Wenn Sie feststellen, dass SSMS MARS und daher unterschiedliche Sitzungen auf jeder Registerkarte für geöffnete Dateien #tempverwendet, können Tabellen nicht in verschiedenen Registerkarten für geöffnete Dateien abgelegt oder ausgewählt werden, da sie einen Sitzungsbereich haben.
GibralterTop
4
  • Die Verbindung steht für die Verbindung zum Server über ein Netzwerk oder lokal über den gemeinsam genutzten Speicher.

  • Eine Sitzung repräsentiert einen Benutzerprozess in SQL Server.

  • Eine Verbindung kann mit null oder mehr als einer Sitzung verknüpft sein.

Mihir
quelle
3

Sie können die dynamischen Verwaltungsansichten von sys.dm_exec_sessions abfragen, um Informationen zu erfolgreichen und nicht erfolgreichen Anmeldungen zu erhalten, wenn die Kompatibilität mit allgemeinen Kriterien für eine SQL Server 2012-Instanz aktiviert ist.

Die dynamische Verwaltungsansicht sys.dm_exec_connections enthält Informationen zu Verbindungen, die mit der Datenbankmodulinstanz hergestellt wurden. Sie können in dieser dynamischen Verwaltungsansicht keine Informationen zu erfolgreichen und fehlgeschlagenen Anmeldungen abfragen, wenn die Kompatibilität mit allgemeinen Kriterien für eine SQL Server 2012-Instanz aktiviert ist.

Phil Mccormack
quelle