Se detectó una posible recompilación infinita para SQLHANDLE


10

He estado encontrando mensajes de error extraños en el registro de errores de SQL:

Bocss: el mismo punto muerto que tiene lugar cada hora - necesita investigación

También se enumeran muchas recompilaciones en el registro de errores para otros SPID según los siguientes ejemplos:

09/04/2015 14: 30: 10, spid64, Desconocido, se detectó una posible recompilación infinita para SQLHANDLE 0x0200000059631A288882589E0C54B76404CAE1B97E08D3680000000000000000000000000000000000000000 PlanHandle 0x0600040059631A2860A62B654100000001000000000000000000000000000000000000000000000000000000 desplazamiento inicial 1038 ending compensar 2600. La última razón era recompilación 2. 04/09/2015 14:30:10 , spid150, Desconocido, se detectó una posible recompilación infinita para SQLHANDLE 0x02000000EF886F018C4E0B163812B8B20150FE8FC7E6A06A0000000000000000000000000000000000000000 PlanHandle 0x06000400EF886F01901A816E0600000001000000000000000000000000000000000000000000000000000000 desplazamiento inicial 998 ending compensar 2520. La última razón era recompilación 2. 09/04/2015 14: 30: 09, spid67, Desconocido,Se ha detectado un posible recompilación infinita para SQLHANDLE 0x0200000057C4C632D9052275CFF2B683B80F29501EE91D730000000000000000000000000000000000000000 PlanHandle 0x0600040057C4C63200EAC2BE3000000001000000000000000000000000000000000000000000000000000000 desplazamiento inicial 1064 ending compensado 2652. 2. Se 09/04/2015 14 La última razón recompilación: 30: 09, spid163, Desconocido, se detectó una posible recompilación infinita para SQLHANDLE 0x02000000E7C7BF0E5D70DE55759C7842860272AD474D69AB0000000000000000000000000000000000000000 PlanHandle 0x06000400E7C7BF0EF0EB68A52C00000001000000000000000000000000000000000000000000000000000000 desplazamiento inicial 1028 finalización 2580. El último motivo de recompilación fue 2.

¿Qué pudo haber causado esto?

Parece que ya no tengo los planes en caché. ingrese la descripción de la imagen aquí

siguiendo los consejos de esta publicación http://www.sqlservercentral.com/Forums/Topic1479420-146-1.aspx

luego, como medida de seguridad deshabilitó los catálogos de texto completo, esto no hizo ninguna diferencia, por lo que retrocedí por completo los cambios (descarté los nuevos objetos, etc.). Esto tampoco hizo ninguna diferencia, al final lo único que pareció detenerlo fue un reinicio de las instancias de SQL, esto resolvió de inmediato el problema.

esto también me solucionó, sin embargo, ¿todavía tengo que encontrar qué causó este desastre en primer lugar?


2
Su mensaje de error no significa que el plan ya no está en caché. Creo que ha copiado incorrectamente el identificador del plan y es un valor demasiado largo o demasiado corto. Puedo ejecutar un SELECTsobre dm_exec_sql_textcon el asa que se encuentra en su mensaje de error, sin conseguir un error
Marcos Sinkinson

+ 1 bien visto
Marcello Miorelli

Respuestas:


11

De acuerdo con el mensaje de recompilación Infinite en el registro de errores en el Blog del Equipo de Programación de SQL y Desarrollo de API, este mensaje se activa cuando una declaración en un lote se vuelve a compilar 100 veces seguidas.

Este mensaje no significa necesariamente que haya un problema; existe para ayudar a solucionar problemas que legítimamente podrían estar volviendo a compilar con tanta frecuencia (por ejemplo, debido a cambios rápidos en las estadísticas), así como a bucles de compilación infinitos reales (lo cual sería extremadamente raro).

Debe comenzar identificando la declaración de activación a partir de la información proporcionada y evaluarla en el contexto del código numérico que da la razón de las recompilaciones. Hay una tabla de estos códigos y sus significados en varios lugares en los Libros en línea, incluso bajo el SP: Recompile Event Class .

Hay más información disponible en Plan Caché y Recompilación en SQL Server 2012 .

Tabla de valores

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.