CORRECÇÃO: Ler um rastreamento do Profiler com o:: fn_trace_gettable função e SPID 1000 pode causa erros

Traduções deste artigo Traduções deste artigo
ID do artigo: 325197 - Exibir os produtos aos quais esse artigo se aplica.
BUG #: 360090 (SHILOH_BUGS)
Expandir tudo | Recolher tudo

Sintomas

Se você usar 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 todas as seguintes condições forem atendidas:
  • O arquivo de rastreamento contém eventos para identificação de processo do servidor (SPID) 1000.
  • O primeiro evento para 1000 SPID vem antes de qualquer evento para SPIDS são maiores que 1000.
  • O rastreamento capturado um ou mais dos seguintes colunas:
    • nome do servidor
    • NTUserName
    • NTDomainName
    • LoginName
    • LoginSid
    • ClientProcessID
    • ApplicationName
    • nome do host
Eis uma consulta de exemplo que pode causar uma violação de acesso, se todas as condições na lista forem atendidas:
select * from ::fn_trace_gettable(<trace_file>, 1)	
porque o erro faz com que a rotina de escrever além dos limites de uma matriz, ela tem o potencial de substituir estruturas de dados usados por outras conexões; portanto, ele poderá causar essas conexões experimentar várias condições de falha.

Causa

Os eventos listados são eventos repetidos. Os valores informados para cada uma das colunas é sempre o mesmo para a duração da conexão do que SPID. É uma otimização no local no qual o servidor somente envia esses valores uma vez; daí em diante, ele faz referência o valor de coluna repetido.

Ao ler o arquivo de rastreamento, :: fn_trace_gettable deve manter uma matriz desses valores para que pode ser produzidos no conjunto para quaisquer linhas posteriores de resultados. Há um erro da maneira que essa matriz é redimensionada quando um evento de processamento de 1000 SPID.

Resolução

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft SQL Server 2000. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
290211INF: Como obter o Service Pack mais recente do SQL Server 2000
Observação : O seguinte hotfix foi criado antes do lançamento do Microsoft SQL Server 2000 Service Pack 3.

A versão em inglês dessa correção apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   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     
				
Observação : devido a dependências do arquivo, o hotfix mais recente ou o recurso que contém os arquivos pode também conter arquivos adicionais.


Como Contornar

Abra o arquivo de rastreamento com o SQL Profiler. Se desejar carregar o rastreamento em uma tabela, use a funcionalidade de Salvar como . Para usar a funcionalidade de Salvar como , no menu arquivo , clique em Salvar como e, em seguida, clique para selecionar A tabela de rastreamento .

Observe que, se o arquivo de rastreamento contiver SPIDS são maiores do que 1023, você tenha que usar SQL Server 2000 Service Pack 1 ou posterior, versão das ferramentas de cliente:
272737CORRECÇÃO: O SQL Profiler gera erro ao ler arquivos de rastreamento que exceder SPIDs 1023

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.

Esse problema foi corrigido primeiro no Microsoft SQL Server 2000 Service Pack 3.

Propriedades

ID do artigo: 325197 - Última revisão: terça-feira, 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 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: 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