Otimizar o SQL Trace

Aplica-se a:SQL Server

Embora executar o SQL Trace implique um custo de desempenho porque utiliza recursos do sistema para recolher dados, pode fazer muitas coisas para os minimizar. Para minimizar o custo de desempenho incorrido por um rastreio, experimente o seguinte:

  • Considere usar a linha de comandos para executar rastreamentos. A utilização de uma interface gráfica prejudica o desempenho. Para mais informações, consulte sp_trace_create (Transact-SQL).

  • Evite incluir eventos que ocorram com frequência. Se possível, estreite o seu rastreio através de classes de eventos específicas e filtros. Se forem recolhidos menos eventos de rastreamento, são necessários menos recursos do sistema para suportar o rastreio.

  • Concentre o rastreio para recolher apenas eventos que forneçam dados relevantes. Por exemplo, se o seu rastreio serve para identificar deadlocks, inclua a classe de evento Lock:Deadlock, mas não a classe de evento Lock:Adquirido. Se incluir ambas as classes de evento, o rastreio tem de responder a todos os bloqueios adquiridos, e o custo de execução é duplicado.

  • Evite recolher dados duplicados. Por exemplo, se recolher SQL:BatchStarted e SQL:BatchCompleted, pode minimizar o tamanho do conjunto de resultados recolhendo dados de texto apenas para a classe de evento SQL:BatchStarted .

  • Utilize filtros na definição de rastreio. Por exemplo, se souber que um determinado utilizador está a reportar desempenho lento durante consultas ad hoc, crie um filtro no LoginName. Defina o filtro para incluir apenas eventos onde o LoginName corresponde a esse nome de utilizador.

Se precisar de executar um rastreio para eventos que criem um impacto significativo no desempenho, considere limitar esse impacto no servidor usando um dos seguintes métodos:

  • Execute rastreamentos por períodos mais curtos. Pode controlar a duração de um rastreio definindo uma hora de interrupção. Isto é especialmente importante se não conseguires limitar as classes de evento ou filtrar um evento. Ativar um tempo de paragem garante que o desempenho incorrido não dure indefinidamente.

  • Limite o tamanho dos resultados do rastreio. Podes limitar o tamanho dos resultados do traço a um tamanho máximo de ficheiro. Esta estratégia garante que o custo de desempenho termina quando o limite de tamanho do ficheiro é atingido (se o rollover de ficheiros não estiver ativado).

  • Limite o número de eventos devolvidos. Com o SQL Server Profiler podes limitar o número de eventos devolvidos guardando o rastreio numa tabela e definindo o número máximo de linhas. Os resultados de rastreio continuam a ser devolvidos ao ecrã do SQL Server Profiler após o número máximo de linhas ter sido atingido, mas o custo de registar os resultados numa tabela é eliminado.

Ver também

Filtrar um Traço