Come trovare ciò che ha causato gli errori segnalati in una traccia del profiler di SQL Server?

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

Domanda

Stavo eseguendo una traccia su un SQL Server 2005 utilizzando il profiler e ho bisogno di scoprire cosa sta causando gli errori segnalati.

Ho usato il " vuoto " modello e selezionato tutte le colonne dei seguenti eventi:

  • eccezione
  • Evento di fuoriuscita di Exchange
  • Avvisi di esecuzione
  • Avvisi hash
  • Statistiche sulle colonne mancanti
  • Predicato di registrazione mancante

Ho notato un certo numero di questi errori in " TextData " colonna:

  • Errore: 156, gravità: 16, stato: 0
  • Errore: 208, gravità: 16, stato: 0

Ho cercato gli errori (sintassi errata, nome oggetto non valido), ma come posso sapere quale procedura memorizzata o query li sta causando?

È stato utile?

Soluzione

Non preoccuparti degli errori 208. 208 è "oggetto non trovato". Il profiler li raccoglie grazie alla cosiddetta "risoluzione differita dei nomi".

Segui la seguente procedura.

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

Quel proc funzionerà bene senza errori, tuttavia, se hai una traccia del profiler in esecuzione, vedrai una o due istanze dell'errore 208. È perché la tabella #Temp non esiste all'avvio del proc, che è quando il codice viene analizzato e associato. Il processo di associazione agli oggetti sottostanti fallisce.

Una volta eseguita la tabella di creazione, le altre istruzioni vengono ricompilate e associate alla tabella corretta ed eseguite senza errori.

L'unico posto in cui vedrai l'errore di risoluzione differito è nel profiler.

Altri suggerimenti

in sql 2005 non puoi. dovrai eseguire la traccia del profiler di SQL: StmtStarting, SQL: StmtCompleted, messaggi di errore utente ed eventi di eccezione con le colonne di testo, transazioneId, EventSequence e otehr necessarie per avere un quadro di ciò che sta succedendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top