ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡΡΠ΅Ρ Π·Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ (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Π’ΠΎΠ²Π° Π΅ ΠΏΡΠ±Π»ΠΈΡΠ½Π°ΡΠ° Π½Π° ΠΌΠΎΡ 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.

ΠΠΎΡΡΠΈ Π³ΠΎΡΠΎΠ²ΠΎ! Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈΠΌΠ΅Π½Π°ΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°:
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%% Π΅ Π½Π΅-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½ ΠΌΠ°Π»ΡΠΊ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ Π²ΡΡΡΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΠΏΠΈΡΡ. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ .
Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ ΠΈΡΠΊΠ°Ρ ΠΌΠ΅ Π΄Π° Π½Π°Π»ΠΎΠΆΠΈΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π² 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) ΠΠ΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° database_id
Π’ΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π² Π³ΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ! ΠΠ°ΠΌΠΈΡΠ°ΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΠ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅:
SELECT
name
FROM sys.databases
WHERE database_id=6;
GOΠ ΠΌΠΎΡ ΡΠ»ΡΡΠ°ΠΉ β ΡΠΎΠ²Π° Π΅ Π²ΡΠ΅ ΡΡΡΠΎΡΠΎ .
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 () Π·Π°ΡΠΎΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΠΌΠ° ΡΠ°ΠΌ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π° Π½Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΈΠΌΠ°Π»ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π·Π°ΠΏΠΎΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° β Π½Π΅ ΠΌΠΈΡΠ»Ρ, ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π΅ Π²Π°ΠΆΠ½Π° Π·Π° Π½Π°Ρ.
ΠΡΠΎ Ρ, Π·Π°ΠΏΠΈΡΠ°, Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΠΎΡΠΈΡ
ΠΌΠ΅!

ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅
ΠΠ΅ ΠΏΠΎΠΌΠ½Ρ ΠΊΠΎΠΉ ΠΏΡΡΠ²ΠΈ ΠΎΠΏΠΈΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ ΡΠ΅Π·ΠΈ Π½Π΅ΡΠ°, Π½ΠΎ Π΅ΡΠΎ Π΄Π²Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π·Π° Π½Π°ΠΉ-ΡΠ»Π°Π±ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ Ρ Π°ΡΠ΅ΡΠ°Ρ:
- ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° Paul Randal Π·Π° (ΠΊΠ°ΠΊΡΠΎ Π½Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ)
- ΠΡΠΏΡΠΎΡ Π½Π° StackOverflow Π·Π° (ΠΊΠ°ΠΊΡΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ Π²ΡΠ² Π²ΡΠΎΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ). ΠΠ΄ΠΈΠ½ ΠΎΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
