2016-11-15 3 views
1

ブロックされたプロセスレポートから取得するリソースが次のように取得されます。「OBJECT:6:1647722064:12」今私はこれをデコードしようとしています。しかし、私はこれに関するWebやStack Overflowの参考情報は見つかりませんでした。SQL Serverオブジェクトのロックを復号する

最初の2つの部分が推測することは可能です:

  • 6は、データベースID
  • 1647722064である必要があり、おそらくオブジェクトID

である。しかし数12は何を参照してくださいでしょうか? IDが12の索引がなく、パーティション表でもありません。

この待機情報を正しくデコードする方法はありますか?

事前のおかげでたくさんのファイルのページ番号です

マーティン

答えて

1

。以下のクエリは、これを知る方法の良いスタートとなります。あなたの例では

DBCC PAGE (@DatabaseID, @File_No, @Page_No) WITH TABLERESULTS 

この1

DBCC PAGE (6, 1647722064, 12) WITH TABLERESULTS 

ページ・ロックを使用してオブジェクトロックは、オブジェクト全体をロックされるのに対し、(データベース内のデータの単一8kのページ(おそらくいくつかの行)ロックしていますテーブルなど)。さまざまなロックタイプに役立つ優れた説明へのリンクがあります。

What are row, page and table locks? And when they are acquired?

あなたはDBCC PAGEコマンドラインの一つは、このページが属する親オブジェクトを教えてくれますMetadata: ObjectIdで渡し

。このObjectIdは、sys.objectsに照会して親オブジェクトを表示するときに使用できます。

+0

ありがとうございました!面白い!ページロック(例:PAGE:6:3:70133)とオブジェクトロックの違いは何ですか? –

+0

@MartinGuth私は、コメントのためにちょっとだったので私の答えを編集しました、それはここにすべてを書き直すよりもちょっと違いを説明するのに役立つはずです。 –

+0

ページが既に消えてしまったので、さらなる洞察を得ることができません。さらに見てみると、これらのブロックはインデックスの再構築中に発生していることがわかりました。残念ながらSQL 2008 Standardしかありません。オンライン再構築はありません: –

関連する問題