¿Cómo encontrar lo que causó los errores informados en una traza del analizador de SQL Server?

StackOverflow https://stackoverflow.com/questions/812522

Pregunta

Estaba ejecutando un seguimiento en un Sql Server 2005 utilizando el generador de perfiles y necesito averiguar qué está causando los errores informados.

Utilicé el " espacio en blanco " plantilla, y seleccionó todas las columnas de los siguientes eventos:

  • Excepción
  • Evento de derrame de intercambio
  • Advertencias de ejecución
  • Hash Warnings
  • Estadísticas de columnas faltantes
  • Falta el predicado de unirse

Noté varios de estos errores en " TextData " columna:

  • Error: 156, Gravedad: 16, Estado: 0
  • Error: 208, Gravedad: 16, Estado: 0

Busqué los errores (sintaxis incorrecta, nombre de objeto no válido), pero ¿cómo puedo saber qué procedimiento almacenado o consulta los está causando?

¿Fue útil?

Solución

No te preocupes por los 208 errores. 208 es " Objeto no encontrado " ;. El generador de perfiles los recoge debido a lo que se denomina "resolución de nombres diferida".

Lleve a cabo el siguiente procedimiento.

CREATE PROCEDURE Demo AS
  CREATE TABLE #Temp (ID int)
  INSERT INTO #Temp VALUES (1)
  SELECT ID FROM #Temp
GO

Ese proceso se ejecutará bien sin ningún error, sin embargo, si tiene un rastreo del generador de perfiles en ejecución, verá una o dos instancias del error 208. Es porque la tabla #Temp no existe cuando se inicia el proceso, que es cuando el código es analizado y encuadernado. El proceso de enlace a los objetos subyacentes falla.

Una vez que se ejecuta la tabla de creación, las otras declaraciones se vuelven a compilar, se unen a la tabla correcta y se ejecutan sin errores.

El único lugar donde verá que el error de resolución diferida es en el generador de perfiles.

Otros consejos

en sql 2005 no puedes. Tendrá que ejecutar el seguimiento del generador de perfiles de SQL: StmtStarting, SQL: StmtCompleted, User Error Message y Exception events con texto, transactionId, EventSequence y otras columnas que necesita para obtener una imagen de lo que está sucediendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top