Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na: SQL Server 2016 (13.x) a novější verze
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Třída událostí Lock:Escalation označuje, že jemnější zámek byl převeden na hrubozrnný; například zámek řádku, který je převeden na objektový zámek. Třída eskalační události je Event ID 60.
Lock:Escalation Event Class Data Columns
| Název datového sloupce | Datový typ | Description | ID sloupce | Filtrovatelný |
|---|---|---|---|---|
| Název aplikace | nvarchar | Název klientské aplikace, která vytvořila připojení k instanci SQL Serveru. Tento sloupec se naplní hodnotami předanými aplikací místo zobrazovaného názvu programu. | 10 | Ano |
| ClientProcessID | int | ID přiřazené hostitelským počítačem procesu, ve kterém je klientská aplikace spuštěná. Tento datový sloupec se vyplní, pokud klient poskytne ID klientského procesu. | 9 | Ano |
| DatabaseID | int | Identifikace databáze, ve které byl zámek získán. SQL Server Profiler zobrazuje název databáze, pokud je sloupec dat ServerName zachycen v trace a server je dostupný. Pomocí funkce DB_ID určete hodnotu databáze. | 3 | Ano |
| DatabaseName | nvarchar | Název databáze, ve které došlo k eskalaci. | 35 | Ano |
| EventClass | int | Typ události = 60. | 27 | Ne |
| EventSubClass | int | Příčina eskalace zámku: 0 - LOCK_THRESHOLD znamená, že příkaz překročil práh zámku. 1 - MEMORY_THRESHOLD označuje, že příkaz překročil práh paměti. |
21 | Ano |
| EventSequence | int | Posloupnost dané události v rámci požadavku | 51 | Ne |
| GroupID | int | ID skupiny úloh, ve které se aktivuje událost trasování SQL. | 66 | Ano |
| Název hostitele | nvarchar | Název počítače, na kterém je klient spuštěný. Tento datový sloupec se vyplní, pokud klient zadá hostitelské jméno. Pro určení názvu hostitele použijte funkci HOST_NAME. | 8 | Ano |
| IntegerData | int | HoBT lock count. Počet zámků pro HoBT v době eskalace zámků. | 25 | Ano |
| IntegerData2 | int | Počet zámků se zvýšil. Celkový počet zdymadel, které byly přestavěny. Tyto zdymadla jsou vyřazena, protože jsou již pokryty eskalovaným zámkem. | 55 | Ano |
| IsSystem | int | Určuje, jestli došlo k události v systémovém procesu nebo uživatelském procesu. 1 = systém, 0 = uživatel. | 60 | Ano |
| Linenumber | int | Číslo řádku Transact-SQL tvrzení. | 5 | Ano |
| Přihlásit se | nvarchar | Název uživatelského přihlášení (buď bezpečnostní přihlášení SQL Serveru, nebo přihlašovací údaje Microsoft Windows ve formě DOMÉNA\uživatelské jméno). | 11 | Ano |
| LoginSid | image | Identifikační číslo zabezpečení (SID) přihlášeného uživatele. Tyto informace najdete v sys.server_principals katalogovém zobrazení. Každý identifikátor SID je jedinečný pro každé přihlášení na serveru. | 41 | Ano |
| Mode | int | Výsledný režim zámku po eskalaci: 0=NULL - Kompatibilní se všemi ostatními režimy zámku (LCK_M_NL) 1=Stabilitní zámek schématu (LCK_M_SCH_S) 2=Zámek modifikace schématu (LCK_M_SCH_M) 3=Sdílený zámek (LCK_M_S) 4=Aktualizovat zámek (LCK_M_U) 5=Exkluzivní zámek (LCK_M_X) 6=Záměr sdílený zámek (LCK_M_IS) 7=Zámek aktualizace záměru (LCK_M_IU) 8=Zámek výhradně záměrem (LCK_M_IX) 9=Sdíleno s úmyslem aktualizovat (LCK_M_SIU) 10=Exkluzivně sdíleno s úmyslem (LCK_M_SIX) 11=Aktualizace s exkluzivním záměrem (LCK_M_UIX) 12=Hromadný aktualizační zámek (LCK_M_BU) 13=Sdílený/sdílený rozsah klíčů (LCK_M_RS_S) 14=Sdílení rozsahu klíčů/aktualizace (LCK_M_RS_U) 15=Vložení rozsahu klíčů NULL (LCK_M_RI_NL) 16=Sdílené vložení rozsahu klíčů (LCK_M_RI_S) 17=Aktualizace vložení rozsahu klíčů (LCK_M_RI_U) 18=Insert Range Exclusive (LCK_M_RI_X) 19=Sdílené klíčové rozsahy (LCK_M_RX_S) 20=Exkluzivní aktualizace klíčového rozsahu (LCK_M_RX_U) 21=Exkluzivní pro klíčovou řadu exkluzivně (LCK_M_RX_X) |
32 | Ano |
| NTDomainName | nvarchar | Doména Systému Windows, do které uživatel patří. | 7 | Ano |
| NTUserName | nvarchar | Uživatelské jméno systému Windows. | 6 | Ano |
| ObjectID | int | Systémově přiřazené ID tabulky, pro kterou byla eskalace zámku spuštěna. | 22 | Ano |
| ObjectID2 | bigint | ID souvisejícího objektu nebo entity. (HoBT ID, pro které byla eskalace zámku spuštěna.) | 56 | Ano |
| Ofset | int | Začínáme offset Transact-SQL výroku. | 61 | Ano |
| OwnerID | int | 1=TRANSAKCE 2=KURZOR 3=SEZENÍ 4=SHARED_TRANSACTION_WORKSPACE 5=EXCLUSIVE_TRANSACTION_WORKSPACE 6=WAITFOR_QUERY |
58 | Ano |
| RequestID | int | ID požadavku obsahujícího příkaz. | 49 | Ano |
| název serveru | nvarchar | Název instance systému SQL Server, která se trasuje. | 26 | Ne |
| SessionLoginName | nvarchar | Přihlašovací jméno uživatele, který relaci pochází. Například pokud se připojíte ke SQL Serveru pomocí Login1 a vykonáte příkaz jako Login2, SessionLoginName ukáže Login1 a LoginName Login2. Tento sloupec zobrazuje přihlášení k SQL Serveru i Windows. | 64 | Ano |
| SPID | int | ID relace, na které došlo k události. | 12 | Ano |
| Počáteční čas | datetime | Čas, kdy událost začala, pokud je k dispozici. | 14 | Ano |
| TextData | ntext | Text Transact-SQL prohlášení, které způsobilo eskalaci zámku. | 1 | Ano |
| TransactionID | bigint | ID transakce přiřazené systémem. | 4 | Ano |
| Type | int | Granularita eskalace zámku: 1=NULL_RESOURCE 2=DATABÁZE 3=SOUBOR 5=OBJEKT (úroveň tabulky) 6=PAGE 7=KLÍČ 8=ROZSAH 9=RID 10=APLIKACE 11=METADATA 12=HOBT 13=ALLOCATION_UNIT |
57 | Ano |
Examples
Následující příklad používá sp_trace_create postup pro vytvoření stopy, přidává sp_trace_setevent sloupce eskalace zámku do stopy a poté používá k sp_trace_setstatus zahájení stopy. Ve výrocích jako EXEC sp_trace_setevent @TraceID, 60, 22, 1, číslo 60 označuje třídu escalační události, 22 označuje sloupec ObjectID a nastavuje 1 stopovací událost na ON.
DECLARE @RC int, @TraceID int;
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\TraceResults';
-- Set the events and data columns you need to capture.
EXEC sp_trace_setevent @TraceID, 60, 1, 1; -- 1 = TextData
EXEC sp_trace_setevent @TraceID, 60, 12, 1; -- 12 = SPID
EXEC sp_trace_setevent @TraceID, 60, 21, 1; -- 21 = EventSubClass
EXEC sp_trace_setevent @TraceID, 60, 22, 1; -- 22 = ObjectID
EXEC sp_trace_setevent @TraceID, 60, 25, 1; -- 25 = IntegerData
EXEC sp_trace_setevent @TraceID, 60, 55, 1; -- 25 = IntegerData2
EXEC sp_trace_setevent @TraceID, 60, 57, 1; -- 57 = Type
-- Set any filter by using sp_trace_setfilter.
-- Start the trace.
EXEC sp_trace_setstatus @TraceID, 1;
GO
Teď, když je stopa spuštěná, proveďte příkazy, které chcete sledovat. Když skončí, spusťte následující kód pro zastavení a následné uzavření stopy. Tento příklad používá fn_trace_getinfo funkci k získání traceid , které je použito ve výrocích sp_trace_setstatus .
-- After the trace is complete.
DECLARE @TraceID int;
-- Find the traceid of the current trace.
SELECT @TraceID = traceid
FROM ::fn_trace_getinfo(default)
WHERE value = N'C:\TraceResults.trc';
-- First stop the trace.
EXEC sp_trace_setstatus @TraceID, 0;
-- Close and then delete its definition from SQL Server.
EXEC sp_trace_setstatus @TraceID, 2;
GO
Viz také
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)