INF: Como criar um rastreamento do SQL Server 2000

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 283790
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo descreve como criar e usar um procedimento armazenado chamado trace_build que cria um rastreamento dos argumentos em um arquivo de texto. Esse procedimento é uma alternativa ao uso do SQL Profiler para criar um script para criar um rastreamento.
Mais Informações
A sintaxe para trace_build é da seguinte maneira:
trace_build  @traceini				
onde @ traceini é o nome de um arquivo de texto que contém informações sobre como criar um rastreamento. O nome do arquivo é definido com um tipo de dados de nvarchar(245) e tem um valor padrão de 'C:\ActivityTrace.ini'.

O exemplo seguinte cria um rastreamento das informações contidas no arquivo C:\Trace1.ini:
trace_build 'c:\Trace1.ini'				
o arquivo @ traceini deve conter as seguintes informações:
  • @ tracefile
    Dados são gravados no arquivo de rastreamento que é especificado na variável @ tracefile. Altere @ tracefile para salvar o rastreamento em uma unidade e nome diferente. Observe que uma extensão .TRC é adicionada automaticamente pelo rastreamento.
  • @ maxfilesize
    Quando o arquivo de rastreamento atinge o número de megabytes especificado na variável @ maxfilesize, o arquivo é fechado. Altere @ maxfilesize para aumentar ou reduzir o tamanho em megabytes do arquivo de rastreamento.
  • @ stoptime
    Altere @ stoptime para definir um tempo para o rastreamento interromper automaticamente.
  • @ Opções
    Quando o argumento @ Opções é definido como 2, o rastreamento criará novos arquivos de rastreamento quando a variável @ maxfilesize for excedida. Quando o arquivo de rastreamento atinge o número de megabytes especificado na variável @ maxfilesize, o arquivo é fechado e um novo arquivo é criado. Se o arquivo de rastreamento original especificado na variável @ tracefile é C:\ActivityTrace, o arquivo original será chamado C:\ActivityTrace.trc. O próximo arquivo de rastreamento é C:\ActivityTrace_1.trc, o próximo arquivo de rastreamento é C:\ActivityTrace_2.trc e assim por diante.
  • @ eventos
    Altere @ eventos para controlar os eventos rastreados.
  • @ colunas
    Altere @ colunas para controlar as colunas rastreadas.
  • @ Filtro1
    O número de variáveis de @ filtro pode variar de nenhuma variável @ filtro para @ filter99. As variáveis de filtro devem iniciar com @ Filtro1 e continuar em seqüência para o último filtro. Os quatro argumentos na variável @ filtro são column_id, logical_operator, comparison_operator e valor. Os argumentos são usados pelo procedimento armazenado do sistema, sp_trace_setfilter, para criar um filtro.
Para obter mais informações sobre o @ tracefile, @ maxfilesize, @ stoptime e @ opções argumentos, consulte o artigo sp_trace_create nos manuais online do SQL Server 2000.

Obter informações adicionais sobre os argumentos @ eventos e @ colunas estão disponíveis no artigo livros online do SQL Server 2000 sp_trace_setevent .

Obter informações adicionais sobre filtros estão disponíveis no artigo livros online do SQL Server 2000 sp_trace_setfilter .

Por exemplo, considere o conteúdo seguinte de um arquivo @ traceini chamado C:\TraceArgs.ini:
@tracefile         = C:\ActivityTrace @maxfilesize       = 50 @stoptime          = 2010-12-31 12:00:00.000 @options           = 2 @events            = 10,11,12,13,16,17,19,33,42,43,55 @columns           = 1,2,3,6,9,10,11,12,13,14,15,16,17,18,25 @filter1           = 10, 0, 7, N'SQL Profiler' 				
quando a instrução a seguir é executada:
trace_build 'C:\TraceArgs.ini'				

o script cria um tracefile, C:\ActivityTrace.trc (@ tracefile), que contém o rastreamento. Quando o tracefile atinge 50 MB (@ maxfilesize), C:\ActivityTrace.trc é fechada e um novo arquivo, C:\ActivityTrace_1.trc é criado (@ Opções). Os seguintes eventos são rastreados (@ eventos de):
  • RPC: concluído
  • RPC: iniciando
  • SQL:BatchCompleted
  • SQL:BatchStarting
  • Atenção
  • ExistingConnection
  • DTCTransaction
  • Exceção
  • SP: iniciando
  • SP: concluído
  • Aviso de hash
As seguintes colunas estão (@ colunas) rastreadas:
  • TextData
  • BinaryData
  • DatabaseID
  • NTUserName
  • ClientProcessID
  • ApplicationName
  • SQLSecurityLoginName
  • SPID
  • Duração
  • Hora de início
  • EndTime
  • Leituras
  • Gravações
  • CPU
  • IntegerData
O rastreamento filtra eventos para que ele captura eventos apenas onde ApplicationName não como 'SQL Profiler' (@ Filtro1).

O rastreamento será paralisada no 12: 00 pm em 31 de Dec. de 2010 (@ stoptime).

Para obter informações adicionais em Parar ou verificar o status do rastreamento, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
283786INF: Como monitorar rastreamentos do SQL Server 2000
Para criar trace_build procedimento armazenado, execute o seguinte script em uma janela Query Analyzer:
CREATE   proc trace_build  @traceini nvarchar (245) = N'C:\ActivityTrace.ini' as declare @traceid int, @options int, @tracefile nvarchar (245), @maxfilesize bigint      , @stoptime datetime, @minMBfree bigint, @rc int, @on bit, @cmd1 nvarchar(512)      , @events varchar(512), @columns varchar(512), @event int, @column int, @estart int, @enext int      , @cstart int, @cnext int, @le int, @lc int, @filter nvarchar(245), @filter_num intcreate table #t1 ([c1] nvarchar(512))set @cmd1 = 'bulk insert #t1 FROM '''select @cmd1 + @traceiniexec (@cmd1 + @traceini + '''')select @tracefile = cast(rtrim(ltrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as nvarchar (245)) from #t1 where left(c1,3) = '@tr'select @maxfilesize = cast(rtrim(ltrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as bigint) from #t1 where left(c1,3) = '@ma'select @stoptime = cast(rtrim(ltrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as datetime) from #t1 where left(c1,3) = '@st'select @options = cast(rtrim(ltrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as int) from #t1 where left(c1,3) = '@op'select @events=cast(ltrim(rtrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as nvarchar (512)) from #t1 where left(c1,3) = N'@ev'select @columns=cast(ltrim(rtrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as nvarchar (512)) from #t1 where left(c1,3) = N'@co'set @on = 1set @traceid = 0select @tracefileSELECT @traceid = traceid FROM :: fn_trace_getinfo(0) where property = 2 and value = @tracefileif @traceid != 0 goto finishset @cmd1 = 'if exist ' + @tracefile + '.trc ' + 'del ' + @tracefile + '*.trc'exec @rc = master.dbo.xp_cmdshell @cmd1, no_outputexec @rc = sp_trace_create @traceid output, @options, @tracefile, @maxfilesize, @stoptimeselect @estart = 1select @enext = charindex(',',@events,@estart)select @cstart = 1select @cnext = charindex(',',@columns,@cstart)set @le = len(@events)set @lc = len(@columns)while @enext > 0 begin select @event = cast(substring(@events,@estart,@enext-@estart) as int) while @cnext > 0  begin  select @column = cast(substring(@columns,@cstart,@cnext-@cstart) as int)  exec sp_trace_setevent @traceid, @event, @column, @on  select @cstart = @cnext + 1  select @cnext = charindex(',',@columns,@cstart)  if @cnext = 0 set @cnext = @lc + 1  if @cstart >@lc set @cnext = 0  end select @cstart = 1 select @cnext = charindex(',',@columns,@cstart) select @estart = @enext + 1 select @enext = charindex(',',@events,@estart) if @enext = 0 set @enext = @le + 1 if @estart > @le set @enext = 0 endset @cmd1 = 'exec sp_trace_setfilter ' set @filter = N'none'select @filter = cast(ltrim(rtrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as nvarchar (245)) from #t1 where cast(ltrim(rtrim(substring(c1,1,charindex('=',c1,1)-1))) as nvarchar (245)) = N'@filter1'set @filter_num = 1while @filter != N'none' begin exec (@cmd1 + @traceid + ','+@filter) set @filter_num = @filter_num + 1 set @filter = N'none' select @filter = cast(ltrim(rtrim(substring(c1,charindex('=',c1,1)+1,len(c1)))) as nvarchar (245)) from #t1 where cast(ltrim(rtrim(substring(c1,1,charindex('=',c1,1)-1))) as nvarchar (245)) = N'@filter' + cast(@filter_num as nvarchar(3)) select @filter endfinish:drop table #t1exec sp_trace_setstatus @traceid, 1 				

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 283790 - Última Revisão: 12/05/2015 23:38:46 - Revisão: 3.3

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbinfo KB283790 KbMtpt
Comentários