Qual è la differenza tra una connessione e una sessione?


51

Qual è la differenza tra una connessione e una sessione e come sono correlate?

Risposte:


54

La connessione è il canale di comunicazione fisico tra SQL Server e l'applicazione: il socket TCP, la pipe denominata, l'area di memoria condivisa. La sessione in SQL Server corrisponde alla definizione di sessione di Wikipedia : un contenitore di stato semi-permanente per uno scambio di informazioni. In altre parole, le sessioni memorizzano impostazioni come cache delle informazioni di accesso, livello di isolamento della transazione corrente, valori a livello di sessioneSET ecc. Ecc.

Normalmente esiste una sessione su ogni connessione, ma potrebbero esserci più sessioni su una singola connessione ( Multiple Active Result Set , MARS) e ci sono sessioni che non hanno connessione ( procedure attivate da SSB , sessioni di sistema ). Esistono anche connessioni senza sessioni, in particolare connessioni utilizzate per scopi non TDS, come il mirroring del database sys.dm_db_mirroring_connectionso le connessioni di Service Broker sys.dm_broker_connections.


(rumore strabiliante) Quando ti rendi conto che SSMS sta utilizzando MARS e quindi sessioni diverse su ogni scheda di file aperta ed è per questo che le #temptabelle non possono essere eliminate o selezionate in diverse schede di file aperte perché sono nell'ambito della sessione.
Gibilterra

4
  • Connessione rappresenta la connessione al server su una rete o localmente attraverso la memoria condivisa.

  • Una sessione rappresenta un processo utente all'interno di SQL Server.

  • Una connessione può essere collegata con zero o più di una sessione.


3

È possibile eseguire una query sulle viste di gestione dinamica sys.dm_exec_sessions per ottenere informazioni sugli accessi riusciti e non riusciti quando è abilitata la conformità ai criteri comuni su un'istanza di SQL Server 2012.

La vista di gestione dinamica sys.dm_exec_connections fornisce informazioni sulle connessioni stabilite all'istanza del Motore di database. Non è possibile eseguire query su questa vista di gestione dinamica per informazioni sugli accessi riusciti e non riusciti quando è abilitata la conformità ai criteri comuni su un'istanza di SQL Server 2012.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.