Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
De Lock:Escalation event class geeft aan dat een fijnkorreliger slot is omgezet in een grofkorreliger slot; bijvoorbeeld een rijslot dat wordt omgezet in een objectslot. De escalatie-event class is Event ID 60.
Lock:Escalation Event Class Data Columns
| Naam van gegevenskolom | Gegevenstype | Description | Kolom-id | Filterbaar |
|---|---|---|---|---|
| ApplicationName | nvarchar | Naam van de clienttoepassing die de verbinding met een exemplaar van SQL Server heeft gemaakt. Deze kolom wordt gevuld met de waarden die door de toepassing worden doorgegeven in plaats van de weergegeven naam van het programma. | 10 | Yes |
| ClientProcessID | int | De id die door de hostcomputer is toegewezen aan het proces waarop de clienttoepassing wordt uitgevoerd. Deze datakolom wordt ingevuld als de client de clientproces-ID opgeeft. | 9 | Yes |
| DatabaseID | int | ID van de database waarin het slot is verkregen. SQL Server Profiler toont de naam van de database als de ServerName-datakolom in de trace wordt vastgelegd en de server beschikbaar is. Bepaal de waarde voor een database met behulp van de functie DB_ID. | 3 | Yes |
| DatabaseName- | nvarchar | Naam van de database waarin de escalatie plaatsvond. | 35 | Yes |
| EventClass | int | Type evenement = 60. | 27 | Nee. |
| EventSubClass | int | Oorzaak van de sluisescalatie: 0 - LOCK_THRESHOLD geeft aan dat de verklaring de vergrendelingsdrempel heeft overschreden. 1 - MEMORY_THRESHOLD geeft aan dat de instructie de geheugendrempel overschreed. |
21 | Yes |
| EventSequence | int | Volgorde van een bepaalde gebeurtenis binnen de aanvraag. | 51 | Nee. |
| GroupID | int | Id van de workloadgroep waarin de SQL Trace-gebeurtenis wordt geactiveerd. | 66 | Yes |
| HostNaam | nvarchar | Naam van de computer waarop de client wordt uitgevoerd. Deze datakolom wordt ingevuld als de client de hostnaam opgeeft. Om de hostnaam te bepalen, gebruik je de functie HOST_NAME. | 8 | Yes |
| IntegerData | int | HoBT-slotentelling. Het aantal sloten voor de HoBT op het moment van de sluisescalatie. | vijfentwintig | Yes |
| IntegerData2 | int | Verhoogd aantal sloten. Het totale aantal sluizen dat is omgebouwd. Deze sluisstructuren worden niet toegewezen omdat ze al door de geëscaleerde sluis zijn gedekt. | 55 | Yes |
| IsSystem | int | Geeft aan of de gebeurtenis heeft plaatsgevonden in een systeemproces of een gebruikersproces. 1 = systeem, 0 = gebruiker. | 60 | Yes |
| Lijnnummer | int | Regelnummer van Transact-SQL statement. | 5 | Yes |
| LoginNaam | nvarchar | Naam van de inloggegevens van de gebruiker (ofwel SQL Server-beveiligingslogin of de Microsoft Windows-inloggegevens in de vorm van DOMEIN\gebruikersnaam). | 11 | Yes |
| LoginSid | image | Beveiligingsidentificatienummer (SID) van de aangemelde gebruiker. Je kunt deze informatie vinden in de catalogusweergave van de sys.server_principals . Elke SID is uniek voor elke aanmelding op de server. | 41 | Yes |
| Mode | int | Resulterende lock-modus na de escalatie: 0=NULL - Compatibel met alle andere lockmodi (LCK_M_NL) 1=Schema Stabiliteitsslot (LCK_M_SCH_S) 2=Schema Modificatie Slot (LCK_M_SCH_M) 3=Gedeeld slot (LCK_M_S) 4=Update-slot (LCK_M_U) 5=Exclusief slot (LCK_M_X) 6=Intentie Gedeelde Slot (LCK_M_IS) 7=Intent Update Lock (LCK_M_IU) 8=Intentie-exclusieve Slot (LCK_M_IX) 9=Gedeeld met de intentie om te updaten (LCK_M_SIU) 10=Gedeeld met intentie exclusief (LCK_M_SIX) 11=Exclusief Bijwerken met Intentie (LCK_M_UIX) 12=Bulk Update Lock (LCK_M_BU) 13=Sleutelbereik gedeeld/gedeeld (LCK_M_RS_S) 14=Sleutelbereik gedeeld/bijgewerkt (LCK_M_RS_U) 15=Sleutelbereik Invoegen NULL (LCK_M_RI_NL) 16=Gedeeld Sleutelbereik-invoeging (LCK_M_RI_S) 17=Sleutelbereik-invoegupdate (LCK_M_RI_U) 18=Sleutelbereik Invoegsel Exclusief (LCK_M_RI_X) 19=Sleutelbereik Exclusief Gedeeld (LCK_M_RX_S) 20=Exclusieve Update van het Sleutelbereik (LCK_M_RX_U) 21=Key Range Exclusief (LCK_M_RX_X) |
32 | Yes |
| NTDomainName | nvarchar | Windows-domein waartoe de gebruiker behoort. | 7 | Yes |
| NTUserName | nvarchar | Windows-gebruikersnaam. | 6 | Yes |
| ObjectID | int | Systeem-toegewezen ID van de tabel waarvoor de lock-escalatie werd geactiveerd. | 22 | Yes |
| ObjectID2 | bigint | ID van het gerelateerde object of entiteit. (HoBT-ID waarvoor de lock-escalatie werd geactiveerd.) | 56 | Yes |
| Afstand | int | Startoffset van Transact-SQL statement. | 61 | Yes |
| OwnerID | int | 1=TRANSACTIE 2=CURSOR 3=SESSIE 4=SHARED_TRANSACTION_WORKSPACE 5=EXCLUSIVE_TRANSACTION_WORKSPACE 6=WAITFOR_QUERY |
58 | Yes |
| RequestID | int | Id van de aanvraag met de instructie. | 49 | Yes |
| Servernaam | nvarchar | De naam van het exemplaar van SQL Server dat wordt getraceerd. | 26 | Nee. |
| SessionLoginName | nvarchar | Aanmeldingsnaam van de gebruiker die de sessie heeft gestart. Als je bijvoorbeeld verbinding maakt met SQL Server via Login1 en een instructie uitvoert als Login2, toont SessionLoginName Login1 en LoginName Login2 . In deze kolom worden zowel SQL Server- als Windows-aanmeldingen weergegeven. | 64 | Yes |
| SPID | int | Id van de sessie waarop de gebeurtenis heeft plaatsgevonden. | 12 | Yes |
| StartTime | datetime | Tijdstip waarop de gebeurtenis is gestart, indien beschikbaar. | 14 | Yes |
| TextData | ntext | Tekst van de Transact-SQL verklaring die de lock-escalatie veroorzaakte. | 1 | Yes |
| TransactionID | bigint | Door het systeem toegewezen id van de transactie. | 4 | Yes |
| Typ | int | Lock-escalatie granulariteit: 1=NULL_RESOURCE 2=DATABASE 3=BESTAND 5=OBJECT (tabelniveau) 6=PAGINA 7=SLEUTEL 8=OMVANG 9=RID 10=TOEPASSING 11=METADATA 12=HOBT 13=ALLOCATION_UNIT |
57 | Yes |
Voorbeelden
Het volgende voorbeeld gebruikt de sp_trace_create procedure om een trace te maken, gebruikt sp_trace_setevent het toevoegen van lock escalation-kolommen aan de trace, en vervolgens gebruikt sp_trace_setstatus het om de trace te starten. In statements zoals EXEC sp_trace_setevent @TraceID, 60, 22, 1, geeft het getal 60 de escalatie-event class aan, 22 geeft de ObjectID-kolom aan en 1 zet het trace-event op 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
Nu de trace draait, voer je de statements uit die je wilt traceren. Wanneer ze klaar zijn, voer je de volgende code uit om te stoppen en sluit je vervolgens de trace. Dit voorbeeld gebruikt de fn_trace_getinfo functie om de traceid te krijgen die gebruikt moet worden in de sp_trace_setstatus statements.
-- 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
Zie ook
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)