CORRECÇÃO: Leitura um rastreio Profiler com o:: fn_trace_gettable função e SPID 1000 pode causa erros

Traduções de Artigos Traduções de Artigos
Artigo: 325197 - Ver produtos para os quais este artigo se aplica.
N.º DE BUGS: 360090 (SHILOH_BUGS)
Expandir tudo | Reduzir tudo

Sintomas

Se utilizar o : fn_trace_gettable função para ler um rastreamento SQL Profiler, uma violação de acesso ou várias mensagens de erro pode ocorrer quando são satisfeitas as seguintes condições:
  • O ficheiro de rastreio contém eventos para ID de processo do servidor (SPID) 1000.
  • O primeiro evento para 1000 SPID é fornecido antes de quaisquer eventos para SPIDS maiores que 1000.
  • O rastreio capturado um ou mais das seguintes colunas:
    • nome_do_servidor
    • NTUserName
    • NTDomainName
    • LoginName
    • LoginSid
    • ClientProcessID
    • ApplicationName
    • nome do anfitrião
Segue-se uma consulta de exemplo que pode causar uma violação de acesso, se forem cumpridas todas as condições na lista:
select * from ::fn_trace_gettable(<trace_file>, 1)	
uma vez que o erro faz com que a rotina de escrita para além dos limites de uma matriz, tem o potencial para substituir as estruturas de dados que são utilizadas por outras ligações; assim, pode levar as ligações experimentar várias condições de falha.

Causa

Os eventos listados são eventos repeatable. Os valores comunicados para cada uma das colunas é sempre o mesmo para a duração da ligação que SPID. É uma optimização no local em que o servidor só envia estes valores uma vez; posteriormente, referencia o valor de coluna repetidos.

Ao ler o ficheiro de rastreio, :: fn_trace_gettable deve manter uma matriz destes valores, de modo que pode ser produzidas no conjunto para quaisquer linhas posteriores de resultados. Existe um erro da forma que é redimensionada desta matriz ao processar um evento para 1000 SPID.

Resolução

Para resolver este problema, obtenha o service pack mais recente do Microsoft SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211INF: How To Obtain the Latest SQL Server 2000 Service Pack
Nota : A correcção seguinte foi criada antes da disponibilização do Microsoft SQL Server 2000 Service Pack 3.

A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date         Time   Version         Size             File name
   -----------------------------------------------------------------

   18-Jan-2002  04:45  2000.80.568.0      29,244 bytes  Dbmslpcn.dll     
   19-Nov-2002  19:50  2000.80.703.0   7,471,185 bytes  Sqlservr.exe     
   18-Jan-2002  04:45  2000.80.568.0      29,244 bytes  Ssmslpcn.dll     
				
Nota : devido a dependências de ficheiros, a correcção ou funcionalidade que contém os ficheiros mais recentes poderão também conter ficheiros adicionais.


Como contornar

Abra o ficheiro de rastreio com o SQL Profiler. Se pretender carregar o rastreio para uma tabela, utilize a funcionalidade Guardar como . Para utilizar a funcionalidade Guardar como , no menu ficheiro , clique em Guardar como e, em seguida, clique para seleccionar Tabela de rastreio .

Note que se o ficheiro de rastreio contiver SPIDS superiores a 1023, tem de utilizar do SQL Server 2000 Service Pack 1 ou posterior, versão as ferramentas de cliente:
272737CORRECÇÃO: SQL Profiler gera o erro ao ler ficheiros de rastreio que excedem os SPID 1023

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Este problema foi corrigido pela primeira vez no Microsoft SQL Server 2000 Service Pack 3.

Propriedades

Artigo: 325197 - Última revisão: 27 de setembro de 2005 - Revisão: 6.3
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbsqlserv2000sp3fix kbsqlserv2000presp3fix kbfix kbqfe kbbug kbpending KB325197 KbMtpt
Tradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 325197

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com