Como encontrar o que causou erros relatados em um rastreamento do profiler do SQL Server?

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

Pergunta

Eu estava executando um rastreamento em um Sql Server 2005 usando o profiler e necessidade de descobrir o que está causando os erros relatados.

Eu usei o "blank" modelo, e selecionado todas as colunas dos seguintes eventos:

  • Excepção
  • Troca de derramamento Evento
  • Avisos de Execução
  • Avisos de hash
  • Faltando Coluna Estatísticas
  • Faltando predicado

notei um número destes erros na coluna "TextData":

  • Erro: 156, gravidade: 16, estado: 0
  • Erro: 208, gravidade: 16, estado: 0

Eu olhei para os erros (sintaxe incorreta, nome do objeto inválido), mas como posso saber qual o procedimento ou consulta armazenada está causando-los?

Foi útil?

Solução

Não se preocupe com os erros 208. 208 é "objeto não encontrado". Profiler pega estes devido ao que é chamado de 'adiada a resolução de nomes'.

Leve o procedimento a seguir.

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

Isso proc irá correr bem sem erros no entanto, se você tiver um rastreamento do profiler execução, você verá um ou dois casos de erro 208. É porque a tabela #temp não existe quando os começos proc, que é quando o código é analisado e ligado. O processo de ligação para os objectos subjacentes falhar.

Uma vez que a criação de pistas de mesa, as outras declarações se recompilados e vinculado à tabela correta e executar sem erro.

O único lugar que você vai ver que erro de resolução diferido está em profiler.

Outras dicas

no SQL 2005 você não pode. você vai ter que executar o rastreamento do profiler do SQL: StmtStarting, SQL:. StmtCompleted, mensagem de erro do usuário e eventos de exceção com texto, transactionId, EventSequence e colunas otehr você precisa para obter uma imagem do que está acontecendo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top