Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как найти таблицу которой принадлежит страница ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Ещё раз здравствуйте !!!
Есть данные:
spid SQL User Status Blocked By Last Command DBName CPU IO Mem Current Wait Time (ms) Program Last Wait Type Last Wait Resource Login Time Last Batch Time Time Since Last Batch Tran Count Host Name Host Process Net Address Net Library System
73 sa sleeping AWAITING COMMAND etz_work 0 0 7 558 0 Microsoft SQL Server PAGELATCH_EX 7:1:652305 19.12.2012 11:28:12 19.12.2012 11:53:10 16 min 1 SRV-ERP2 5576 00259014D06C TCP/IP N

Мне надо выяснить какой таблице принадлежит страница 7:1:652305, если 7:1 - это БД:файл данных понятно. То как быть со страницей 652305 ??? Как узнать ???
19 дек 12, 13:57    [13654087]     Ответить | Цитировать Сообщить модератору
 Re: Как найти таблицу которой принадлежит страница ?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
stavgreengo,

dbcc traceon(3604);
dbcc page(7,1,652305);


В полученном результате ищете строчку типа "Metadata: ObjectId = 197575742". По этому object_id определяете объект БД.
19 дек 12, 14:04    [13654136]     Ответить | Цитировать Сообщить модератору
 Re: Как найти таблицу которой принадлежит страница ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Гость333
stavgreengo,

dbcc traceon(3604);
dbcc page(7,1,652305);


В полученном результате ищете строчку типа "Metadata: ObjectId = 197575742". По этому object_id определяете объект БД.

bspin = 0 bnext = 0x00000000

PAGE HEADER:
------------

Page @0x743BC000
----------------
m_pageId = (1:652305) m_headerVersion = 1 m_type = 2
m_typeFlagBits = 0x0 m_level = 0 m_flagBits = 0x0
m_objId = 1829581556 m_indexId = 2 m_prevPage = (0:0)
m_nextPage = (1:652306) pminlen = 25 m_slotCnt = 24
m_freeCnt = 7448 m_freeData = 3321 m_reservedCnt = 0
m_lsn = (806427:121850:58) m_xactReserved = 0
m_xdesId = (4:-1886044468) m_ghostRecCnt = 6
m_tornBits = 1144134117

Allocation Status
-----------------
GAM (1:511232) = ALLOCATED
SGAM (1:511233) = NOT ALLOCATED
PFS (1:647040) = 0x48 ALLOCATED 0_PCT_FULL DIFF (1:511238) = CHANGED
ML (1:511239) = NOT MIN_LOGGED


DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Соответственно следующий вопрос - как узнать что такое m_objId = 1829581556 ???
19 дек 12, 14:17    [13654241]     Ответить | Цитировать Сообщить модератору
 Re: Как найти таблицу которой принадлежит страница ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
SELECT * FROM [dbo].[sysobjects] WHERE id = '1829581556'

Возвращает
name id xtype uid info status base_schema_ver replinfo parent_obj crdate ftcatid schema_ver stats_schema_ver type userstat sysstat indexdel refdate version deltrig instrig updtrig seltrig category cache
sp_helpdevice 1829581556 P 1 0 -1073741823 0 0 0 2000-08-06 01:30:52.607 0 0 0 P 0 4 0 2000-08-06 01:30:52.607 0 0 0 0 0 2 0

Не пойму, почему я вышел на SP :( Что я ни так сделал ?
19 дек 12, 14:25    [13654305]     Ответить | Цитировать Сообщить модератору
 Re: Как найти таблицу которой принадлежит страница ?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
stavgreengo
SELECT * FROM [dbo].[sysobjects] WHERE id = '1829581556'

Где вы выполняете этот запрос? На БД master или на БД с идентификатором 7?
19 дек 12, 14:34    [13654380]     Ответить | Цитировать Сообщить модератору
 Re: Как найти таблицу которой принадлежит страница ?  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
Гость333
stavgreengo
SELECT * FROM [dbo].[sysobjects] WHERE id = '1829581556'

Где вы выполняете этот запрос? На БД master или на БД с идентификатором 7?

:) действительно в торопях перепутал, огромное вам спасибо, ваша карма улучшится. Вопрос закрыт.
19 дек 12, 14:46    [13654450]     Ответить | Цитировать Сообщить модератору
 Re: Как найти таблицу которой принадлежит страница ?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
stavgreengo,

Не за что, плюс на всякий случай, если нужно узнать содержимое страницы — запускаете DBCC PAGE с опцией 3:
dbcc traceon(3604);
dbcc page(7,1,652305,3);
19 дек 12, 15:16    [13654744]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить