it-swarm.it

Qual è la differenza tra una connessione e una sessione?

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

54
jrara

La connessione è il canale di comunicazione fisica tra SQL Server e l'applicazione: il TCP, la pipe denominata, l'area di memoria condivisa. La sessione in SQL Server corrisponde alla definizione di Wikipedia di un - sessione : un contenitore semi-permanente di stato per uno scambio di informazioni. In altre parole, le sessioni memorizzano impostazioni come cache delle informazioni di accesso, livello di isolamento della transazione corrente, livello di sessione SET valori 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 ( SSB procedure attivate , 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_connections o connessioni di Service Broker sys.dm_broker_connections .

55
Remus Rusanu
  • 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.

4
Mihir

È 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 una 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.

3
Phil Mccormack