Баъзан, дар он XML азим, ки шумо меомӯзед, маълумоти бештаре хоҳад буд (графикҳои сарбаста рӯйхати захираҳоеро дар бар мегиранд, ки ба шумо барои дарёфти номи объект ва индекс кӯмак мерасонанд), аммо на ҳамеша.
/* This trace flag makes DBCC PAGE output go to our Messages tab
instead of the SQL Server Error Log file */
DBCC TRACEON (3604);
GO
/* DBCC PAGE (DatabaseName, FileNumber, PageNumber, DumpStyle)*/
DBCC PAGE ('WideWorldImporters',3,70133,2);
GO
Бо паймоиш ба натиҷаҳо, шумо метавонед object_id ва index_id -ро пайдо кунед.
Қариб иҷро шуд! Акнун шумо метавонед номҳои ҷадвал ва индексро бо дархост пайдо кунед:
USE WideWorldImporters;
GO
SELECT
sc.name as schema_name,
so.name as object_name,
si.name as index_name
FROM sys.objects as so
JOIN sys.indexes as si on
so.object_id=si.object_id
JOIN sys.schemas AS sc on
so.schema_id=sc.schema_id
WHERE
so.object_id = 94623380
and si.index_id = 1;
GO
Эзоҳ: Дар SQL Server 2014 ва боло, номи объектро бо истифода аз DMO ҳуҷҷатнашуда sys.dm_db_database_page_allocations пайдо кардан мумкин аст. Аммо шумо бояд ҳар як саҳифаи пойгоҳи додаҳоро пурсед, ки барои пойгоҳи додаҳои калон он қадар ҷолиб нест, бинобар ин ман DBCC PAGE-ро истифода кардам.
Use WideWorldImporters;
GO
SELECT
sys.fn_PhysLocFormatter (%%physloc%%),
*
FROM Sales.OrderLines (NOLOCK)
WHERE sys.fn_PhysLocFormatter (%%physloc%%) like '(3:70133%'
GO
Дар заминаи пойгоҳи додаҳои ёфтшуда, шумо бояд sys.partitions-ро бо якчанд пайвастшавӣ пурсед, ки барои муайян кардани номҳои ҷадвал ва индекс кӯмак мекунад ...
USE WideWorldImporters;
GO
SELECT
sc.name as schema_name,
so.name as object_name,
si.name as index_name
FROM sys.partitions AS p
JOIN sys.objects as so on
p.object_id=so.object_id
JOIN sys.indexes as si on
p.index_id=si.index_id and
p.object_id=si.object_id
JOIN sys.schemas AS sc on
so.schema_id=sc.schema_id
WHERE hobt_id = 72057594041991168;
GO
Он ба ман мегӯяд, ки дархост дар қулфи Application.Countries бо истифода аз индекси PK_Application_Countries интизор буд.