Suponha que eu queira registrar todas as mensagens de erro do usuário de gravidade 16 (e superior) em uma tabela de banco de dados para permitir alguma solução de problemas retrospectiva do aplicativo (já que a resposta para "Você pode me enviar a mensagem de erro?" é frequentemente "Não, fechei it.") Um rastreamento do lado do servidor será a opção mais eficaz ou haveria uma abordagem ainda melhor?
relate perguntas
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Quanto "Padding" coloco em meus índices?
-
Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?
-
Como determinar se um Índice é necessário ou necessário
-
Downgrade do SQL Server 2008 para 2005
O problema com um rastreamento do lado do servidor é que registrar as mensagens de erro sem nenhum contexto provavelmente não é muito útil e coletar esse contexto requer rastrear e filtrar os eventos mais caros, como
SQL:StatementCompleted
Como você está no SQL Server 2008, pode procurar eventos estendidos para isso. Isso é muito mais eficiente, pois, em vez de capturar todas as instruções e, em seguida, descartar aquelas sem erro, ele só dispara em caso de erro e recupera o texto da instrução. Para algum código de exemplo, veja minha resposta aqui. embora eu recomende que você baixe o suplemento SSMS de eventos estendidos e personalize-o de acordo com suas necessidades.