{"id":722,"date":"2007-09-21T18:39:24","date_gmt":"2007-09-21T16:39:24","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2007\/09\/21\/sql-server\/sql-server-sessions-und-connections"},"modified":"2007-09-21T18:40:16","modified_gmt":"2007-09-21T16:40:16","slug":"sql-server-sessions-und-connections","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2007\/09\/21\/sql-talk\/sql-server\/sql-server-sessions-und-connections","title":{"rendered":"SQL-Server: Sessions und Connections"},"content":{"rendered":"<p>Im SQL-Server-2005 wird zwischen Sessions und Connections unterschieden. Als ich das in dieser Woche bemerkte, musste ich ziemlich lange suchen bis ich den Unterschied bzw. die Zusammenh&#228;nge verstand: <\/p>\n<p>Eine <strong>Session<\/strong> in SQL-Server-2005 ist das, was &quot;fr&#252;her&quot; der System-Prozess war, den man in der Systemtabelle &quot;sysprocesses&quot; beobachten konnte. Jede Session hat eine Session-ID, die exakt dem entspricht, was bisher die SPID (system process ID) war. Neben den Session, die von Benutzern kommen, gibt es auch eine ganze Reihe von Sessions, die vom SQL-Server zur internen Verwaltung genutzt werden (&quot;internal tasks&quot;). Wie bisher sind sie daran erkennbar, dass deren Session-ID kleiner als 50 ist.<br \/>\nInformationen &#252;ber Sessions kann man aus der Dynamic-Management-View (DMV) <a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms176013.aspx\">sys.dm_exec_sessions<\/a> erfahren. Darin stehen neben den &quot;bisherigen&quot; Infos auch jede Menge Eigenschaften der Session, z.B. die aktuell gesetzten Werte der einschl&#228;gigen Settings, z.B. den Isolation-Level oder den Lock-Timeout. Sehr praktisch!<\/p>\n<p>Jede Verbindung, die von &quot;au&#223;en&quot; zum SQL-Server aufgebaut wird, ist eine &quot;<strong>Connection<\/strong>&quot;. Jeder Connection ist genau eine Session zugeordnet. Ich habe lange rumger&#228;tselt, ob eine Session auch mehrere Connections haben kann, das ist zwar laut Doku m&#246;glich, ich fand aber keinen Hinweis darauf in welchen F&#228;llen das wie gehen soll. Aber es scheint so zu sein, dass eine Connection nacheinander mehrere Sessions haben kann. Das scheint bei SOAP-Verbindungen relevant zu sein.<br \/>\nConnection-Informationen stehen in der DMV <a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms181509.aspx\">sys.dm_exec_connections<\/a>. Hier finden sich dann auch die Netzadresse des Clients, das Login und solche Dinge. Schick ist, dass es pro Connection eine eindeutige unique ID gibt. Damit hat man endlich eine brauchbare ID, die nicht nach Beenden der Connection sofort wieder verwendet wird, wie das bei der SPID ist. <\/p>\n<p>Daneben gibt es &#252;brigens auch noch den <strong>Request<\/strong>. Jede Session kann mehrere Request ausf&#252;hren. Darin wird das auszuf&#252;hrende SQL-Statement hinterlegt, die Transaktion, der Zugriffsplan usw.<br \/>\nDiese Infos stehen unter <a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms177648.aspx\">sys.dm_exec_requests<\/a>. Neben den oben genannten Dingen stehen hier auch Status, Blockierungsinformationen und I\/O-Informationen.<\/p>\n<p>F&#252;r weitere Infos zu dem Thema empfehle ich den Artikel &quot;<a href=\"http:\/\/www.sqlteam.com\/article\/dynamic-management-views\">Dynamic Management Views<\/a>&quot; auf SQLTeam.com.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im SQL-Server-2005 wird zwischen Sessions und Connections unterschieden. Als ich das in dieser Woche bemerkte, musste ich ziemlich lange suchen bis ich den Unterschied bzw. die Zusammenh&#228;nge verstand: Eine Session in SQL-Server-2005 ist das, was &quot;fr&#252;her&quot; der System-Prozess war, den man in der Systemtabelle &quot;sysprocesses&quot; beobachten konnte. Jede Session hat eine Session-ID, die exakt dem [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/722"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=722"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/722\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=722"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}