Трассировка SQL Server - перевод информации PAGE в реальный ресурс - PullRequest
0 голосов
/ 01 июля 2010

Я исследую тупики, которые возникают в нашем приложении. Я включил трассировку для 1204, 1205 и 3605. Я получил трассировку тупика в порядке. Но я не могу понять, на каком ресурсе он находится в тупике. Я прочитал много форумов, и все они говорят, что трассировка должна содержать нечто, называемое KEY / RID, которое будет указывать на рассматриваемый ресурс. Но мои файлы трассировки вообще не содержат KEY / RID. Вместо этого он содержит то, что называется PAGE.

Например, 30.06.2010 16: 29: 52, spid4s, Неизвестно, СТРАНИЦА: 8: 1: 16512 CleanCnt: 2 Режим: IX Флаги: 0x2 30.06.2010 16: 29: 52, spid4s, Неизвестно, СТРАНИЦА: 8: 1: 5293 CleanCnt: 2 Режим: IX Флаги: 0x2

Как я могу определить, что это за ресурс, на основании этой информации PAGE, которую я получаю? Заранее спасибо за помощь!

1 Ответ

1 голос
/ 01 июля 2010

похоже, что блокировка выполняется на уровне страницы. Посмотрите http://msdn.microsoft.com/en-us/library/aa937573(SQL.80).aspx> Использование флага трассировки 1204> Термины в отчете флага трассировки 1204> PAG

PAG

Идентифицирует ресурс страницы, на которой блокировка удерживается или запрашивается.

PAG представлен в Trace Flag 1204 как PAG: db_id: file_id: page_no; за например, ПАГ: 7: 1: 168.

Редактировать

  1. Используйте DBCC PAGE (http://support.microsoft.com/kb/83065 или http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server/26555/Determining-table-for-a-particular-File-id-Page-No), чтобы получить идентификатор объекта из информации страницы,

  2. , затем используйте OBJECT_NAME (http://msdn.microsoft.com/en-us/library/ms186301.aspx) или запросите sys.objects для получения ресурса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...