เชกเซ‡เชกเชฒเซ‰เช•เซเชธ เช…เชจเซ‡ เชฒเซ‰เช•เซเชธเชฎเชพเช‚ เชกเชฟเชธเชฟเชซเชฐ เช•เซ€ เช…เชจเซ‡ เชชเซ‡เชœ เชตเซ‡เช‡เชŸ เชฐเชฟเชธเซ‹เชฐเซเชธ

เชœเซ‹ เชคเชฎเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช…เชนเซ‡เชตเชพเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹ เช…เชฅเชตเชพ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ SQL เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชกเซ‡เชกเชฒเซ‹เช• เช—เซเชฐเชพเชซเซเชธ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เช†เชจเชพ เชœเซ‡เชตเซ€ เชตเชธเซเชคเซเช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชถเซ‹:

waitresource="PAGE: 6:3:70133"

waitresource=โ€œKEY: 6:72057594041991168 (ce52f92a058c)โ€œ

เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ, เชคเชฎเซ‡ เชœเซ‡ เชตเชฟเชถเชพเชณ XML เชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเซ‹ เช›เซ‹ เชคเซ‡เชฎเชพเช‚ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ€ เชนเชถเซ‡ (เชกเซ‡เชกเชฒเซ‹เช• เช—เซเชฐเชพเชซเชฎเชพเช‚ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เชนเซ‹เชฏ เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เช…เชจเซ‡ เช‡เชจเซเชกเซ‡เช•เซเชธเชจเชพ เชจเชพเชฎ เชถเซ‹เชงเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡), เชชเชฐเช‚เชคเซ เชนเช‚เชฎเซ‡เชถเชพ เชจเชนเซ€เช‚.

เช† เชŸเซ‡เช•เซเชธเซเชŸ เชคเชฎเชจเซ‡ เชคเซ‡เชฎเชจเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

เช…เชนเซ€เช‚ เชœเซ‡ เชฌเชงเซ€ เชฎเชพเชนเชฟเชคเซ€ เช›เซ‡ เชคเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐ เชตเชฟเชตเชฟเชง เชธเซเชฅเชณเซ‹เช เช›เซ‡, เชคเซ‡ เช–เซ‚เชฌ เชœ เชธเชฐเชณ เชฐเซ€เชคเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡! เชนเซเช‚ DBCC PAGE เชฅเซ€ hobt_id เชธเซเชงเซ€ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค %%physloc%% เช…เชจเซ‡ %%lockres%% เชซเช‚เช•เซเชถเชจเซเชธ เชธเซเชงเซ€, เชฌเชงเชพเชจเซ‡ เชเช•เชธเชพเชฅเซ‡ เชฎเซ‚เช•เชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚.

เชชเชนเซ‡เชฒเชพ, เชšเชพเชฒเซ‹ PAGE เชฒเซ‰เช•เซเชธ เชชเชฐ เชฐเชพเชน เชœเซ‹เชตเชพเชจเซ€ เชตเชพเชค เช•เชฐเซ€เช, เช…เชจเซ‡ เชชเช›เซ€ KEY เชฒเซ‰เช•เซเชธ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช.

1) waitresource="PAGE: 6:3:70133" = Database_Id: FileId: PageNumber

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€ PAGE เชฒเซ‹เช• เชชเชฐ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซ€ เช›เซ‡, เชคเซ‹ SQL เชธเชฐเซเชตเชฐ เชคเชฎเชจเซ‡ เชคเซ‡ เชชเซƒเชทเซเช เชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เช†เชชเชถเซ‡.

"PAGE: 6:3:70133" เชจเซ‡ เชคเซ‹เชกเชตเชพเชฅเซ€ เช†เชชเชฃเชจเซ‡ เชฎเชณเซ‡ เช›เซ‡:

  • database_id = 6
  • เชกเซ‡เชŸเชพ_เชซเชพเช‡เชฒ_เช†เช‡เชกเซ€ = 3
  • เชชเซƒเชทเซเช _เชจเช‚เชฌเชฐ = 70133

1.1) เชกเซ‡เชŸเชพเชฌเซ‡เช_เช†เชˆเชกเซ€เชจเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ‹

เช•เซเชตเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซเช‚ เชจเชพเชฎ เชถเซ‹เชงเซ‹:

SELECT 
    name 
FROM sys.databases 
WHERE database_id=6;
GO

เชคเซ‡ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช›เซ‡ เชกเซ€เชฌเซ€ เชตเชพเชˆเชกเชตเชฐเซเชฒเซเชก เช†เชฏเชพเชคเช•เชพเชฐเซ‹ เชฎเชพเชฐเชพ SQL เชธเชฐเซเชตเชฐ เชชเชฐ.

1.2) เชกเซ‡เชŸเชพ เชซเชพเช‡เชฒเชจเซเช‚ เชจเชพเชฎ เชถเซ‹เชงเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ€เช - เชœเซ‹ เชคเชฎเชจเซ‡ เชฐเชธ เชนเซ‹เชฏ

เช•เซ‹เชทเซเชŸเช•เชจเซเช‚ เชจเชพเชฎ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เช†เช—เชณเชจเชพ เชชเช—เชฒเชพเชฎเชพเช‚ data_file_id เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชœเชˆ เชฐเชนเซเชฏเชพ เช›เซ€เช. เชคเชฎเซ‡ เชซเช•เซเชค เช†เช—เชฒเชพ เชชเช—เชฒเชพ เชชเชฐ เชœเชˆ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเชจเซ‡ เชซเชพเช‡เชฒเชจเชพ เชจเชพเชฎเชฎเชพเช‚ เชฐเชธ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เช† เช•เซเชตเซ‡เชฐเซ€เชฎเชพเช‚ data_file_id เชจเซ‡ เชฌเชฆเชฒเซ€เชจเซ‡, เชฎเชณเซ‡เชฒเชพ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เช•เซเชตเซ‡เชฐเซ€ เชšเชฒเชพเชตเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹:

USE WideWorldImporters;
GO
SELECT 
    name, 
    physical_name
FROM sys.database_files
WHERE file_id = 3;
GO

WideWorldImporters เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช† WWI_UserData เชจเชพเชฎเชจเซ€ เชซเชพเช‡เชฒ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‡เช‚ เชคเซ‡เชจเซ‡ C:MSSQLDATAWideWorldImporters_UserData.ndf เชชเชฐ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เช›เซ‡. (เช…เชฐเซ‡เชฐเซ‡, เชคเชฎเซ‡ เชฎเชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เชกเซเชฐเชพเช‡เชต เชชเชฐ เชซเชพเช‡เชฒเซ‹ เชฎเซ‚เช•เชคเชพ เชชเช•เชกเซเชฏเซ‹! เชจเชพ! เชคเซ‡ เชถเชฐเชฎเชœเชจเช• เช›เซ‡).

1.3) DBCC PAGE เชชเชฐเชฅเซ€ เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเซเช‚ เชจเชพเชฎ เชฎเซ‡เชณเชตเซ‹

เชนเชตเซ‡ เช†เชชเชฃเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ เชกเซ‡เชŸเชพเชซเชพเช‡เชฒ 70133 เชฎเชพเช‚เชจเซเช‚ เชชเซƒเชทเซเช  #3 เชตเชฐเซเชฒเซเชกเชตเชพเช‡เชก เช‡เชฎเซเชชเซ‹เชฐเซเชŸเชฐเซเชธ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซเช‚ เช›เซ‡. เช…เชฎเซ‡ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค DBCC PAGE เช…เชจเซ‡ เชŸเซเชฐเซ‡เชธ เชซเซเชฒเซ‡เช— 3604 เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช† เชชเซƒเชทเซเช เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เช“ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช.
เชจเซ‹เช‚เชง: เชนเซเช‚ เช…เชจเซเชฏ เชธเชฐเซเชตเชฐ เชชเชฐ เช•เซเชฏเชพเช‚เช• เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เชจเช•เชฒ เชชเชฐ DBCC PAGE เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเซเช‚ เช›เซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค เชธเชพเชฎเช—เซเชฐเซ€ เช›เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚, เชคเซ‡เชฃเซ€ เชกเชฎเซเชชเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซ€ เชถเช•เซ‡ เช›เซ‡ (เช†เชถเชฐเซ‡ เช…เชจเซเชตเชพเชฆเช• - เชฒเชฟเช‚เช•, เช•เชฎเชจเชธเซ€เชฌเซ‡, เช•เซเชฏเชพเช‚เชฏ เชฆเซ‹เชฐเซ€ เชœเชคเซ€ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ url เชฆเซเชตเชพเชฐเชพ เชจเช•เซเช•เซ€ เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‡เชฒ เช…เชจเซเช•เซเชฐเชฎเชฃเชฟเช•เชพเช“ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช).

/* 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

เช…เชจเซ‡ เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เชธเซ‡เชฒเซเชธ.เช“เชฐเซเชกเชฐเชฒเชพเชˆเชจเซเชธ เชŸเซ‡เชฌเชฒเชจเชพ PK_Sales_OrderLines เชˆเชจเซเชกเซ‡เช•เซเชธ เชชเชฐ เชฒเซ‰เช•เชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชˆ เชฐเชนเซ€ เช›เซ‡.

เชจเซ‹เช‚เชง: SQL เชธเชฐเซเชตเชฐ 2014 เช…เชจเซ‡ เชคเซ‡เชจเชพเชฅเซ€ เช‰เชชเชฐเชจเชพ เชญเชพเช—เชฎเชพเช‚, เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเซเช‚ เชจเชพเชฎ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค DMO sys.dm_db_database_page_allocations เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเชฃ เชถเซ‹เชงเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชชเซ‡เชœเชจเซ€ เช•เซเชตเซ‡เชฐเซ€ เช•เชฐเชตเซ€ เชชเชกเชถเซ‡, เชœเซ‡ เชฎเซ‹เชŸเชพ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชฌเชนเซ เชธเชฐเชธ เชฒเชพเช—เชคเซเช‚ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชฎเซ‡เช‚ DBCC PAGE เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹.

1.4) เชถเซเช‚ เชคเซ‡ เชชเซƒเชทเซเช  เชชเชฐเชจเซ‹ เชกเซ‡เชŸเชพ เชœเซ‹เชตเชพเชจเซเช‚ เชถเช•เซเชฏ เช›เซ‡ เชœเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚?

เชจเซ, เชนเชพ. เชชเชฐเช‚เชคเซ... เชถเซเช‚ เชคเชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เช›เซ‡ เช•เซ‡ เชคเชฎเชจเซ‡ เช–เชฐเซ‡เช–เชฐ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡?
เชคเซ‡ เชจเชพเชจเชพ เชŸเซ‡เชฌเชฒ เชชเชฐ เชชเชฃ เชงเซ€เชฎเซเช‚ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเซ‡ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชธเชฐเชธ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเชฎเซ‡ เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€ เชตเชพเช‚เชšเซเชฏเซเช‚ เช›เซ‡...เชšเชพเชฒเซ‹ %%physloc%% เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เช!

%%physloc%% เช เชœเชพเชฆเซเชจเซ‹ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค เชญเชพเช— เช›เซ‡ เชœเซ‡ เชฆเชฐเซ‡เช• เชเชจเซเชŸเซเชฐเซ€ เชฎเชพเชŸเซ‡ เชญเซŒเชคเชฟเช• ID เชชเชฐเชค เช•เชฐเซ‡ เช›เซ‡. เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ SQL เชธเชฐเซเชตเชฐ 2008 เช…เชจเซ‡ เช‰เชšเซเชšเชฎเชพเช‚ sys.fn_PhysLocFormatter เชธเชพเชฅเซ‡ %%physloc%%.

เชนเชตเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเซ‡ Sales.OrderLines เชฎเชพเช‚ เชชเซƒเชทเซเช เชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช—เซ€เช เช›เซ€เช, เชคเซ‹ เช…เชฎเซ‡ เช† เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚เชจเซ‹ เชคเชฎเชพเชฎ เชกเซ‡เชŸเชพ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช, เชœเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เช•เซเชตเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เชชเซƒเชทเซเช  #3 เชชเชฐ เชกเซ‡เชŸเชพ เชซเชพเช‡เชฒ #70133 เชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡:

Use WideWorldImporters;
GO
SELECT 
    sys.fn_PhysLocFormatter (%%physloc%%),
    *
FROM Sales.OrderLines (NOLOCK)
WHERE sys.fn_PhysLocFormatter (%%physloc%%) like '(3:70133%'
GO

เชฎเซ‡เช‚ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เชคเซ‡ เชจเชพเชจเชพ เชŸเซ‡เชฌเชฒ เชชเชฐ เชชเชฃ เชงเซ€เชฎเซเช‚ เช›เซ‡. เชฎเซ‡เช‚ เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ NOLOCK เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเชœเซ เชชเชฃ เช•เซ‹เชˆ เช—เซ‡เชฐเซ‡เช‚เชŸเซ€ เชจเชฅเซ€ เช•เซ‡ เช…เชฎเซ‡ เชœเซ‡ เชกเซ‡เชŸเชพ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช เชคเซ‡ เชฌเชฐเชพเชฌเชฐ เช เชœ เช›เซ‡ เชœเซ‡ เชฒเซ‰เช•เชจเซ€ เชถเซ‹เชง เชฅเชˆ เชคเซ‡ เชธเชฎเชฏเซ‡ เชนเชคเซ‹ - เชœเซ‡เชฅเซ€ เช…เชฎเซ‡ เชธเซเชฐเช•เซเชทเชฟเชค เชฐเซ€เชคเซ‡ เช—เช‚เชฆเชพ เชตเชพเช‚เชšเชจ เช•เชฐเซ€ เชถเช•เซ€เช.
เชชเชฐเช‚เชคเซ, เชนเซเชฐเซ‡, เช•เซเชตเซ‡เชฐเซ€ เชฎเชจเซ‡ 25 เชชเช‚เช•เซเชคเชฟเช“ เช†เชชเซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ€ เช•เซเชตเซ‡เชฐเซ€ เชฒเชกเชพเชˆ เชนเชคเซ€.
เชกเซ‡เชกเชฒเซ‰เช•เซเชธ เช…เชจเซ‡ เชฒเซ‰เช•เซเชธเชฎเชพเช‚ เชกเชฟเชธเชฟเชซเชฐ เช•เซ€ เช…เชจเซ‡ เชชเซ‡เชœ เชตเซ‡เช‡เชŸ เชฐเชฟเชธเซ‹เชฐเซเชธ
PAGE เชฒเซ‹เช• เชตเชฟเชถเซ‡ เชชเซ‚เชฐเชคเซเช‚. เชœเซ‹ เช†เชชเชฃเซ‡ KEY เชฒเซ‹เช•เชจเซ€ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซเชฏเชพ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚?

2) waitresource="KEY: 6:72057594041991168 (ce52f92a058c)" = Database_Id, HOBT_Id (เชฎเซ‡เชœเชฟเช• เชนเซ‡เชถ เชœเซ‡เชจเซ‡ %%lockres%% เชธเชพเชฅเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชœเซ‹ เชคเชฎเซ‡ เช–เชฐเซ‡เช–เชฐ เช‡เชšเซเช›เชคเชพ เชนเซ‹เชต)

เชœเซ‹ เชคเชฎเชพเชฐเซ€ เช•เซเชตเซ‡เชฐเซ€ เช‡เชจเซเชกเซ‡เช•เซเชธ เชเชจเซเชŸเซเชฐเซ€ เชชเชฐ เชฒเซ‰เช• เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชชเชฐ เชฒเซ‰เช• เชฅเชˆ เชœเชพเชฏ เช›เซ‡, เชคเซ‹ เชคเชฎเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชฒเช— เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ เชฎเชณเชถเซ‡.
โ€œ6:72057594041991168 (ce52f92a058c)โ€เชจเซ‡ เชญเชพเช—เซ‹เชฎเชพเช‚ เชคเซ‹เชกเซ€เชจเซ‡, เช†เชชเชฃเชจเซ‡ เชฎเชณเซ‡ เช›เซ‡:

  • database_id = 6
  • hobt_id = 72057594041991168
  • เชฎเซ‡เชœเชฟเช• เชนเซ‡เชถ = (ce52f92a058c)

2.1) เชกเซ‡เชŸเชพเชฌเซ‡เช_เช†เชˆเชกเซ€เชจเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ‹

เชคเซ‡ เช‰เชชเชฐเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ€ เชœเซ‡เชฎ เชฌเชฐเชพเชฌเชฐ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡! เช…เชฎเซ‡ เช•เซเชตเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซเช‚ เชจเชพเชฎ เชถเซ‹เชงเซ€เช เช›เซ€เช:

SELECT 
    name 
FROM sys.databases 
WHERE database_id=6;
GO

เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡ เชธเชฎเชพเชจ เช›เซ‡ เชกเซ€เชฌเซ€ เชตเชพเชˆเชกเชตเชฐเซเชฒเซเชก เช†เชฏเชพเชคเช•เชพเชฐเซ‹.

2.2) เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ hobt_id

เชฎเชณเซ‡เชฒเชพ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ 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

เชคเซ‡ เชฎเชจเซ‡ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ PK_Application_Countries เช‡เชจเซเชกเซ‡เช•เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Application.Countries lock เชชเชฐ เชตเชฟเชจเช‚เชคเซ€เชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชˆ เชฐเชนเซ€ เชนเชคเซ€.

2.3) เชนเชตเซ‡ เช•เซ‡เชŸเชฒเชพเช• %%lockres%% เชฎเซ‡เชœเชฟเช• เชฎเชพเชŸเซ‡ - เชœเซ‹ เชคเชฎเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹ เช•เซ‡ เช•เชˆ เชเชจเซเชŸเซเชฐเซ€ เชฒเซ‰เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€

เชœเซ‹ เชนเซเช‚ เช–เชฐเซ‡เช–เชฐ เชœเชพเชฃเชตเชพ เชฎเชพเช—เซเช‚ เช›เซเช‚ เช•เซ‡ เช•เชˆ เชชเช‚เช•เซเชคเชฟ เชชเชฐ เชฒเซ‰เช•เชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€, เชคเซ‹ เชนเซเช‚ เชŸเซ‡เชฌเชฒ เชชเชฐ เชœ เช•เซเชตเซ‡เชฐเซ€ เช•เชฐเซ€เชจเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซเช‚ เช›เซเช‚. เชฎเซ‡เชœเชฟเช• เชนเซ‡เชถ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชคเซ€ เชเชจเซเชŸเซเชฐเซ€ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค %% lockres%% เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.
เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เช† เช•เซเชตเซ‡เชฐเซ€ เชธเชฎเช—เซเชฐ เช•เซ‹เชทเซเชŸเช•เชจเซ‡ เชธเซเช•เซ‡เชจ เช•เชฐเชถเซ‡, เช…เชจเซ‡ เชฎเซ‹เชŸเชพ เช•เซ‹เชทเซเชŸเช•เซ‹ เชชเชฐ เช† เชฌเชฟเชฒเช•เซเชฒ เช†เชจเช‚เชฆเชฆเชพเชฏเช• เชจ เชนเซ‹เชˆ เชถเช•เซ‡:

SELECT
    *
FROM Application.Countries (NOLOCK)
WHERE %%lockres%% = '(ce52f92a058c)';
GO

เชฎเซ‡เช‚ เชจเซ‹เชฒเซ‹เช• เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ (เชŸเซเชตเชฟเชŸเชฐ เชชเชฐ เช•เซเชฒเชพเช‰เชธ เชเชถเซ‡เชจเชฌเซเชฐเซ‡เชจเชฐเชจเซ€ เชธเชฒเชพเชน เชชเชฐ) เช•เชพเชฐเชฃ เช•เซ‡ เชคเชพเชณเชพเช“ เชเช• เชธเชฎเชธเซเชฏเชพ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช…เชฎเซ‡ เชนเชฎเชฃเชพเช‚ เชœ เชคเซเชฏเชพเช‚ เชถเซเช‚ เช›เซ‡ เชคเซ‡ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เชถเชฐเซ‚ เชฅเชฏเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเซเชฏเชพเช‚ เชถเซเช‚ เชนเชคเซเช‚ เชจเชนเซ€เช‚ - เชฎเชจเซ‡ เชจเชฅเซ€ เชฒเชพเช—เชคเซเช‚ เช•เซ‡ เชกเซ‡เชŸเชพ เชธเซเชธเช‚เช—เชคเชคเชพ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡.
เชตเซ‹เช‡เชฒเชพ, เช…เชฎเซ‡ เชœเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชก เชฎเชพเชŸเซ‡ เชฒเชกเซเชฏเชพ!
เชกเซ‡เชกเชฒเซ‰เช•เซเชธ เช…เชจเซ‡ เชฒเซ‰เช•เซเชธเชฎเชพเช‚ เชกเชฟเชธเชฟเชซเชฐ เช•เซ€ เช…เชจเซ‡ เชชเซ‡เชœ เชตเซ‡เช‡เชŸ เชฐเชฟเชธเซ‹เชฐเซเชธ

เชธเซเชตเซ€เช•เซƒเชคเชฟเช“ เช…เชจเซ‡ เชตเชงเซ เชตเชพเช‚เชšเชจ

เชฎเชจเซ‡ เชฏเชพเชฆ เชจเชฅเซ€ เช•เซ‡ เช†เชฎเชพเช‚เชจเซ€ เช˜เชฃเซ€ เชฌเชงเซ€ เชฌเชพเชฌเชคเซ‹เชจเซเช‚ เชธเซŒเชชเซเชฐเชฅเชฎ เชตเชฐเซเชฃเชจ เช•เซ‹เชฃเซ‡ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชคเชฎเชจเซ‡ เช—เชฎเชถเซ‡ เชคเซ‡เชตเซ€ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซ€ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค เชตเชธเซเชคเซเช“ เชตเชฟเชถเซ‡ เช…เชนเซ€เช‚ เชฌเซ‡ เชชเซ‹เชธเซเชŸเซเชธ เช›เซ‡:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹