Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema que se produce cuando se usa una sesión XEvent que tiene un sqlos.wait_info evento en SQL Server.
Versión del producto original: SQL Server
Número de KB original: 4033835
Síntomas
Considere el caso siguiente:
Cree una sesión XEvent que tenga un
sqlos.wait_infoevento en Microsoft SQL Server.En esta sesión, se define un filtro (predicado) en el siguiente patrón:
[sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text],N'%< **Query Text** >')
En este escenario, puede experimentar cualquiera de los siguientes problemas:
SQL Server genera infracciones de acceso o un archivo de volcado de memoria de desbordamiento de pila.
SQL Server genera un archivo de volcado de memoria del programador que no produce.
Las consultas no devuelven resultados o no se puede cancelar ni eliminar una consulta.
Cuando SQL Server genera una excepción y un
EXCEPTION_ACCESS_VIOLATIONarchivo de volcado de memoria de desbordamiento de pila en el registro de errores de SQL Server, se generan mensajes de error similares a cualquiera de los siguientes mensajes:<> Marca de tiempo spid52 *
<> Marca de tiempo spid52 * BEGIN STACK DUMP:
<> Marca de tiempo spid52 *<Marca> de tiempo espiado 52
<> Marca de tiempo spid52 *
<> Marca de tiempo spid52 *
<Time Stamp> spid52 * Exception Address = 00007FFA414ED763 Module(sqlmin+0000000000D763)
<> Marca de tiempo spid52 * Código de excepción = c0000005 EXCEPTION_ACCESS_VIOLATION
<> Marca de tiempo spid52 * Se produjo una infracción de acceso 0000000000000008
<Time Stamp> spid55 No se puede crear el archivo de volcado de pila debido a la escasez de la pila (Ubicación: scheduler.cpp:2090
Expresión: !pWorker-WorkerQueueElem>::IsInList ()
SPID: 55
Id. de proceso: 8548)
<> La firma de pila spid55 de marca de tiempo para el volcado de memoria es 0x0000000000000000
<> No es posible el volcado de desbordamiento de la pila de marca de tiempo spid55<>: excepción c00000fd EXCEPTION_STACK_OVERFLOW en 0x00007FFA4EF85F35
<> Marca de tiempo spid55 SqlDumpExceptionHandler: Address=0x00007FFA4EF85F35 Código de excepción = c00000fd
<> Marca de tiempo spid55 Rax=000000000000044c Rbx=0000000002612320 Rcx=0000000002612050 Rdx=00000000662baf59
<Time Stamp> spid55 Rsi=000000004b04f848 Rdi=000000004b000270 Rip=0000000004ef85f35 Rsp=000000000002611fd0
<> Marca de tiempo spid55 Rbp=000000000000000 EFlags=0000000000010202
<Time Stamp> spid55 cs=0000000000000033 ss=000000000000002b ds=000000000000002b
es=000000000000002b fs=0000000000000053 gs=000000000000002b
<> Marca de tiempo spid55 1: Frame 00000000000000000 Dirección de devolución 00007FFA4EF85F35
Solución alternativa
Para solucionar este problema, evite usar condiciones de filtro complejas junto con el wait_info evento . Esto se debe a que el wait_info evento consume muchos recursos y puede ralentizar significativamente una consulta.
Si desea realizar un seguimiento <Query Text> en esta situación, cambie el patrón De predicado de filtro a lo siguiente:
([sqlserver].[equal_i_sql_unicode_string]([sqlserver].[sql_text],N'<Query Text>')