Exibindo e analisando rastreamentos com o SQL Server Profiler

Use o SQL Server Profiler para exibir dados de eventos capturados em um rastreamento. O SQL Server Profiler exibe dados baseado nas propriedades de rastreamento definidas. Um modo de analisar os dados do SQL Server é copiá-los para outro programa, como o Orientador de Otimização do SQL Server ou do Mecanismo de Banco de Dados. O Orientador de Otimização do Mecanismo de Banco de Dados poderá usar um arquivo de rastreamento contendo um lote SQL e eventos de chamada de procedimento remota (RPC), se a coluna de dados Text estiver inclusa no rastreamento. Para obter mais informações, consulte Ajustando o design do banco de dados físico. Para certificar-se de que os eventos e colunas corretos são capturados para uso com o Orientador de Otimização do Mecanismo de Banco de Dados, use o modelo Ajuste predefinido, que é fornecido com o SQL Server Profiler.

Ao abrir um rastreamento por meio do SQL Server Profiler, o arquivo de rastreamento não precisa ter a extensão de arquivo .trc, caso tenha sido criado pelo SQL Server Profiler ou por procedimentos armazenados do sistema do Rastreamento do SQL.

ObservaçãoObservação

O SQL Server Profiler também pode ler arquivos .log do Rastreamento do SQL e arquivos de script SQL genéricos. Ao abrir um arquivo .log do Rastreamento do SQL cuja extensão de arquivo não seja .log, como trace.txt, especifique SQLTrace_Log como formato de arquivo.

Você pode configurar o formato de exibição de data e hora do SQL Server Profiler como auxílio para a análise do rastreamento.

Solucionando problemas de dados

Por meio do SQL Server Profiler, é possível solucionar problemas de dados agrupando rastreamentos ou arquivos de rastreamento pelas colunas de dados Duration, CPU, Reads ou Writes. Exemplos de dados cujos problemas podem ser solucionados são consultas com baixo desempenho ou com números excepcionalmente altos de operações lógicas de leitura.

Informações adicional podem ser encontradas salvando-se os rastreamentos em tabelas e usando Transact-SQL para consultar os dados de eventos. Por exemplo, para determinar quais eventos SQL:BatchCompleted tiveram um tempo de espera excessivo, execute o seguinte:

SELECT  TextData, Duration, CPU
FROM    trace_table_name
WHERE   EventClass = 12 -- SQL:BatchCompleted events
AND     CPU < (Duration * 1000)
ObservaçãoObservação

A partir do SQL Server 2005, o servidor informa a duração de um evento em microssegundos (um milionésimo de segundo ou 10-6 segundo) e o tempo de CPU usado pelo evento em milissegundos (um milésimo de segundo ou 10-3 segundo). No SQL Server 2000, o servidor informava a duração e o tempo de CPU em milissegundos. No SQL Server 2005 e versões posteriores, a interface gráfica do usuário do SQL Server Profiler exibe a coluna Duration em milissegundos, por padrão; porém, quando um rastreamento é salvo em um arquivo ou tabela de banco de dados, o valor da coluna Duration é gravado em milissegundos.

Exibindo nomes de objeto ao visualizar rastreamentos

Se desejar exibir o nome de um objeto, em vez de seu identificador (Object ID), capture as colunas de dados Server Name e Database ID junto com a coluna de dados Object Name.

Se preferir agrupar pela coluna de dados Object ID, certifique-se de agrupar primeiro pelas colunas de dados Server Name e Database ID e, depois, pela coluna de dados Object ID. Similarmente, se preferir agrupar pela coluna de dados Index ID, certifique-se de agrupar primeiro pelas colunas de dados Server Name, Database ID e Object ID e, depois, pelas colunas de dados Index ID. É necessário agrupar nessa ordem porque as IDs de objeto e de índice não são exclusivas entre servidores e bancos de dados (e entre objetos quanto às IDs de índice).

Localizando eventos específicos em um rastreamento

Para localizar e agrupar eventos em um rastreamento, siga estas etapas:

  1. Crie seu rastreamento.

    • Ao definir o rastreamento, capture as colunas de dados Event Class, ClientProcessID e Start Time, mais quaisquer outras que desejar. Para obter mais informações, consulte Como criar um rastreamento (SQL Server Profiler).

    • Agrupe os dados capturados pela coluna de dados Event Class e capture o rastreamento em um arquivo ou tabela. Para agrupar os dados capturados, clique em Organizar Colunas na guia Seleção de Eventos da caixa de diálogo Propriedades do Rastreamento. Para obter mais informações, consulte Como organizar colunas exibidas em um rastreamento (SQL Server Profiler).

    • Inicie o rastreamento e interrompa-o quando o tempo apropriado for atingido ou assim que o número de eventos tiver sido capturado.

  2. Localize os eventos visados.

  3. Exiba os eventos em contexto.

    • Exiba as propriedades de rastreamento e agrupe pela coluna de dados ClientProcessID, em vez da Event Class.

    • Expanda os nós de cada ID de processo cliente que desejar exibir. Pesquise o rastreamento manualmente ou use Localizar até encontrar os valores de Start Timeobservados anteriormente para os eventos visados. Os eventos são exibidos em ordem cronológica com os outros eventos que pertencem a cada ID de processo cliente selecionado. Por exemplo, os eventos Deadlock e Deadlock Chain, capturados no rastreamento, aparecem imediatamente após os eventos SQL:BatchStartingna ID de processo cliente expandida.

A mesma técnica pode ser usada para localizar qualquer evento agrupado. Localizados os eventos que procura, agrupe-os por ClientProcessID, Application Name ou outra classe de evento para visualizar a atividade relacionada em ordem cronológica.