Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln hjälper dig att lösa problemet som uppstår när du använder en XEvent-session som har en sqlos.wait_info
händelse i SQL Server.
Ursprunglig produktversion: SQL Server
Ursprungligt KB-nummer: 4033835
Symptom
Föreställ dig följande scenario:
Du skapar en XEvent-session som har en
sqlos.wait_info
händelse i Microsoft SQL Server.I den här sessionen definierar du ett filter (predikat) i följande mönster:
[sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%< **Query Text** >')
I det här scenariot kan du uppleva något av följande problem:
SQL Server genererar åtkomstöverträdelser eller en minnesdumpfil för stackspill.
SQL Server genererar en minnesdumpfil som inte ger resultat.
Frågor returnerar inte resultat eller så kan du inte avbryta eller avsluta en fråga.
När SQL Server skapar en
EXCEPTION_ACCESS_VIOLATION
minnesdumpfil för undantag och stackspill i SQL Server-felloggen genereras felmeddelanden som liknar något av följande meddelanden:<Tidsstämpel> spid52 *
<Tidsstämpel> spid52 * BEGIN STACK DUMP:
<Tidsstämpel> spid52 *<Tidsstämpel> spid 52
<Tidsstämpel> spid52 *
<Tidsstämpel> spid52 *
<Tidsstämpel> spid52 * Undantagsadress = 00007FFA414ED763 Module(sqlmin+000000000000D763)
<Tidsstämpel> spid52 * Undantagskod = c0000005 EXCEPTION_ACCESS_VIOLATION
<Tidsstämpel> spid52 * Åtkomstöverträdelse inträffade skrivadress 0000000000000008
<Tidsstämpel> spid55 Det går inte att skapa stackdumpfilen på grund av stackbrist (plats: scheduler.cpp:2090
Uttryck: !pWorker-WorkerQueueElem>::IsInList ()
SPID: 55
Process-ID: 8548)
<Tidsstämpel> spid55 Stack Signature för dumpen är 0x0000000000000000
<Tidsstämpel> spid55 <Time Stamp> Stack Overflow Dump inte möjligt - Undantag c00000fd EXCEPTION_STACK_OVERFLOW på 0x00007FFA4EF85F35
<Tidsstämpel> spid55 SqlDumpExceptionHandler: Address=0x00007FFA4EF85F35 Exception Code = c00000fd
<Tidsstämpel> spid55 Rax=000000000000044c Rbx=0000000002612320 Rcx=0000000002612050 Rdx=00000000662baf59
<Tidsstämpel> spid55 Rsi=000000004b04f848 Rdi=000000004b0000270 Rip=00000004ef85f35 Rsp=0000000002611fd0
<Tidsstämpel> spid55 Rbp=0000000000000000 EFlags=0000000000010202
<Tidsstämpel> spid55 cs=0000000000000033 ss=000000000000002b ds=000000000000002b
es=000000000000002b fs=0000000000000053 gs=000000000000002b
<Tidsstämpel> spid55 1: Bildruta 00000000000000 Returadress 00007FFA4EF85F35
Lösning
Undvik att använda komplexa filtervillkor tillsammans med händelsen för att undvika det wait_info
här problemet. Det beror på att händelsen wait_info
är resursintensiv och kan göra en fråga betydligt långsammare.
Om du vill spåra <Query Text>
i den här situationen ändrar du mönstret Filterpredicate till följande:
([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[sql_text],N'<Query Text>')