Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Key ΠΈ Page WaitResource ΠΏΡ€ΠΈ Π΄Π΅Π΄Π»ΠΎΠΊΠ°Ρ… ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…

Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (blocked process report) ΠΈΠ»ΠΈ ΡΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° Π΄Π΅Π΄Π»ΠΎΠΊΠΎΠ²Π΅, прСдоставяни ΠΎΡ‚ SQL Server, ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚Π΅ с Π½Π΅Ρ‰ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ:

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 Server Ρ‰Π΅ Π²ΠΈ Π΄Π°Π΄Π΅ адрСса Π½Π° Ρ‚Π°Π·ΠΈ страница.

Π Π°Π·Π±ΠΈΠ²Π°ΠΉΠΊΠΈ "PAGE: 6:3:70133", ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅:

  • database_id = 6
  • data_file_id = 3
  • page_number = 70133

1.1) Π Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°ΠΌΠ΅ database_id

НСка Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅:

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

Π’ΠΎΠ²Π° Π΅ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Π°Ρ‚Π° Π‘Π” WideWorldImporters Π½Π° моя SQL Server.

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 ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π½Π° Π‘Π” WorldWideImporters. МоТСм Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ страница с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° нСдокумСнтирания DBCC PAGE ΠΈ trace-Ρ„Π»Π°Π³Π° 3604.
Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ DBCC PAGE Π½Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²Π΅Π½Π° ΠΊΠΎΠΏΠΈΠ΅ ΠΎΡ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ ΡΡŠΡ€Π²ΡŠΡ€, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ. Π’ някои случаи, Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ създаванС Π½Π° Π΄Π°ΠΌΠΏ (Π±Π΅Π»Π΅ΠΆΠΊΠ° Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π°Ρ‡Π° β€” Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° Π·Π° съТалСниС Π²ΠΎΠ΄ΠΈ Π΄ΠΎ никъдС, Π½ΠΎ съдя ΠΏΠΎ URL, става Π΄ΡƒΠΌΠ° Π·Π° filtered-индСкси).

/* 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.
Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Key ΠΈ Page WaitResource ΠΏΡ€ΠΈ Π΄Π΅Π΄Π»ΠΎΠΊΠ°Ρ… ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…
ΠŸΠΎΡ‡Ρ‚ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ! Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ индСкситС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° заявка:

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 Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Sales.OrderLines.

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π² SQL Server 2014 ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ вСрсии ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅ ΡΡŠΡ‰ΠΎ Π΄Π° бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ Ρ‡Ρ€Π΅Π· Π½Π΅-докумСнтираният DMO sys.dm_db_database_page_allocations. Но Ρ‰Π΅ трябва Π΄Π° заявяватС всяка страница Π² Π‘Π”, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° особСно ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ… DBCC PAGE.

1.4) МоТС Π»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π° страницата, която бСшС Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π°?

Ну, Π΄Π°. Но... ΡƒΠ²Π΅Ρ€Π΅Π½ΠΈ Π»ΠΈ стС, Ρ‡Π΅ наистина Π²ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ?
Π’ΠΎΠ²Π° Π΅ Π±Π°Π²Π½ΠΎ Π΄ΠΎΡ€ΠΈ Π½Π° ΠΌΠ°Π»ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Но ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° интСрСсно, Ρ‚Π°ΠΊΠ° Ρ‡Π΅, слСд ΠΊΠ°Ρ‚ΠΎ стигнахтС Π΄ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚... Π΄Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° %%physloc%%!

%%physloc%% Π΅ Π½Π΅-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ малък магичСски Ρ‚Ρ€ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π²Ρ€ΡŠΡ‰Π° физичСския ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π° всяка запись. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ %%physloc%% Π·Π°Π΅Π΄Π½ΠΎ със sys.fn_PhysLocFormatter Π² SQL Server 2008 ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ..

Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ искахмС Π΄Π° Π½Π°Π»ΠΎΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° страницата Π² 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 Ρ€Π΅Π΄Π°, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° заявка сС Π±ΠΎΡ€Π΅ΡˆΠ΅.
Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Key ΠΈ Page WaitResource ΠΏΡ€ΠΈ Π΄Π΅Π΄Π»ΠΎΠΊΠ°Ρ… ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…
Π‘Ρ‚ΠΈΠ³Π° Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π·Π° 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) Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° database_id

Π’ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² горния ΠΏΡ€ΠΈΠΌΠ΅Ρ€! НамирамС ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π‘Π” с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅:

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

Π’ моя случай β€” Ρ‚ΠΎΠ²Π° Π΅ всС ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π‘Π” WideWorldImporters.

2.2) Π Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°ΠΌΠ΅ hobt_id

Π’ контСкста Π½Π° Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π°Ρ‚Π° Π‘Π”, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към sys.partitions с Π΄Π²ΠΎΠΉΠ½ΠΈ JOIN, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° сС опрСдСлят ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ индСкса...

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.

2.3) Π‘Π΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ магия %%lockres%% β€” Π°ΠΊΠΎ искатС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ коя запись Π΅ Π±ΠΈΠ»Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π°

Ако дСйствитСлно искам Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° Π½Π° коя Ρ€Π΅Π΄ΠΈΡ†Π° Π΅ Π±ΠΈΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π°, ΠΌΠΎΠ³Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° Ρ‚ΠΎΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към самата Ρ‚Π°Π±Π»ΠΈΡ†Π°. МоТСм Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π°Ρ‚Π° функция %%lockres%%, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ запис, ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‰ с чудодСйния Ρ…Π΅Ρˆ.
Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Ρ‰Π΅ сканира цялата Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΈ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π±Π°Π²Π½ΠΎ:

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

Π”ΠΎΠ±Π°Π²ΠΈΡ… NOLOCK (ΠΏΠΎ ΡΡŠΠ²Π΅Ρ‚ Π½Π° Klaus Aschenbrenner Π² Twitter) Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° станат ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НиС просто искамС Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° Ρ‚Π°ΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, Π° Π½Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΈΠΌΠ°Π»ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Π»Π° транзакцията β€” Π½Π΅ мисля, Ρ‡Π΅ послСдоватСлността Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΅ Π²Π°ΠΆΠ½Π° Π·Π° нас.
Π•Ρ‚ΠΎ я, записа, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ сС Π±ΠΎΡ€ΠΈΡ…ΠΌΠ΅!
Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ° Key ΠΈ Page WaitResource ΠΏΡ€ΠΈ Π΄Π΅Π΄Π»ΠΎΠΊΠ°Ρ… ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…

Благодарности ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅

НС помня ΠΊΠΎΠΉ ΠΏΡŠΡ€Π²ΠΈ описа ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π½Π΅Ρ‰Π°, Π½ΠΎ Π΅Ρ‚ΠΎ Π΄Π²Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Π½Π°ΠΉ-слабо Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π½Π΅Ρ‰Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ харСсат:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster