{"id":723,"date":"2007-09-25T19:29:09","date_gmt":"2007-09-25T17:29:09","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2007\/09\/25\/sql-server\/gesperrte-resource-identifizieren"},"modified":"2007-09-25T19:29:09","modified_gmt":"2007-09-25T17:29:09","slug":"gesperrte-resource-identifizieren","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2007\/09\/25\/sql-talk\/sql-server\/gesperrte-resource-identifizieren","title":{"rendered":"gesperrte Resource identifizieren"},"content":{"rendered":"<p>F&#252;r alle, die <u>letzten<\/u> Dienstag auf dem PASS-Treffen in N&#252;rnberg waren: Wir r&#228;tselten, wie man f&#252;r eine Sperre feststellen kann, welche Ressource betroffen ist. Es geht hier um die Info, die z.B. mit sp_lock angezeigt wird.<\/p>\n<p>Ich fand dazu doch keine Info im SQL-Server-Magazine. Aber das ist recht gut und ausf&#252;hrlich in den Books-Online bei &quot;<a href=\"http:\/\/msdn2.microsoft.com\/en-us\/library\/ms190345.aspx\">sys-dm_tran_locks<\/a>&quot; beschrieben. Wenn man die View abruft, dann kann man anhand der Datenbank&#8211;ID und der Ressource-ID (steht in &quot;resource_description&quot;) feststellen, welches Objekt genau gesperrt wurde. Dazu ben&#246;tigt man noch die Datenbank-ID (siehe unten) und ggf. die ID der &#252;bergeordneten Ressource (resource_associated_entity_id ), die enth&#228;lt z.B. meist die &quot;heap or b-tree ID&quot; falls eine Seite gesperrt wurde.<br \/>\nWegen der vielf&#228;ltigen M&#246;glichkeiten ist es nicht ganz unaufw&#228;ndig daf&#252;r eine allgemeine Interpretationsfunktion zu schreiben.<\/p>\n<p>Dabei muss man beachten, dass die Objekt-IDs jeweils auf eine Datenbank bezogen sind. Aber das kann man mit einem neuen Feature des SQL-Servers-2005 l&#246;sen. W&#228;hrend man fr&#252;her f&#252;r die Funktion &quot;object_name(<id>)&quot; immer sicherstellen musste, dass man in der richtigen DB war, kann man heutzutage die relevante Datenbank angeben.<\/p>\n<p>Bisher (geht immer noch):<\/p>\n<p><code lang=\"sql\">use northwind<br \/>\nselect object_name(21575115);<br \/>\n&#8211;> Orders<br \/>\ngo<br \/>\nuse Adventureworks<br \/>\nselect object_name(21575115);<br \/>\n&#8211;> uspLogError<\/code><\/p>\n<p>Jetzt m&#246;glich:<br \/>\n<code lang=\"sql\">use master<br \/>\nselect object_name(21575115, db_id(&#x0027;Northwind&#x0027;));<br \/>\n&#8211;> Orders<\/code><\/p>\n<p>Damit kann man eine Auswertung schreiben, die neben der internen Angabe der Sperren auch das Objekt im Klartext nennt: Flei&#223;ige vor&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F&#252;r alle, die letzten Dienstag auf dem PASS-Treffen in N&#252;rnberg waren: Wir r&#228;tselten, wie man f&#252;r eine Sperre feststellen kann, welche Ressource betroffen ist. Es geht hier um die Info, die z.B. mit sp_lock angezeigt wird. Ich fand dazu doch keine Info im SQL-Server-Magazine. Aber das ist recht gut und ausf&#252;hrlich in den Books-Online bei [&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\/723"}],"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=723"}],"version-history":[{"count":0,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/723\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=723"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}