CORRECÇÃO: Uma violação de acesso é registrada no arquivo Errorlog do SQL Server quando você executa uma consulta que usa um guia de plano no SQL Server 2005

Traduções deste artigo Traduções deste artigo
ID do artigo: 928539 - Exibir os produtos aos quais esse artigo se aplica.
Bug #: 50000452 (Hotfix do SQL)
Aviso
A Microsoft distribui correções do Microsoft SQL Server 2005 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todos os as correções de segurança que foram incluídas com o anterior SQL Server 2005 corrigir lançamento.
Expandir tudo | Recolher tudo

Neste artigo

Este artigo descreve o seguinte sobre esta versão de hotfix:
  • Problemas corrigidos por esse pacote de hotfix
  • Os pré-requisitos para instalar o pacote de hotfix
  • Informações sobre se é necessário reiniciar o computador depois de instalar o pacote de hotfix
  • Informações sobre se o pacote de hotfix é substituído por qualquer outro pacote de hotfix
  • Informações sobre se você deve fazer alterações no registro
  • Arquivos que estão contidos no pacote de hotfix

Sintomas

Quando você executa uma consulta que usa um guia de plano no SQL Server 2005, a consulta pode falhar intermitentemente. Além disso, uma violação de acesso semelhante à seguinte é registrada no arquivo Errorlog do SQL Server:
2006-08-23 13:34:10.48 spid438 *** despejo de pilha sendo enviadas para H:\MSSQL\LOG\SQLDump0016.txt
2006-08-23 13:34:10.48 spid438 SqlDumpExceptionHandler: processo 438 gerou exceção fatal c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server está encerrando esse processo.
2006-08-23 13:34:10.48 spid438 * *******************************************************************************
2006-08-23 13:34:10.48 spid438 *
2006-08-23 13:34:10.48 spid438 * BEGIN DUMP de pilha:
2006-08-23 13:34:10.48 spid438 * 23/08/06 13:34:10 spid 438
2006-08-23 13:34:10.48 spid438 *
2006-08-23 13:34:10.48 spid438 *
2006-08-23 13:34:10.48 spid438 * endereço de exceção = 00000000034CE1D0 Module(sqlservr+00000000024CE1D0)
2006-08-23 13:34:10.48 spid438 * código de exceção = c0000005 EXCEPTION_ACCESS_VIOLATION
2006-08-23 13:34:10.48 spid438 * violação de acesso ao ler endereço 0000000000000010
Esse problema ocorre se as seguintes condições forem verdadeiras:
  • A consulta usa um guia de plano.
  • A consulta aceita alguns parâmetros.
  • O guia de plano aplica-se a dica OPTIMIZE FOR para a consulta.
  • A consulta é recompilada antes de executar a consulta.

Resolução

Um hotfix suportado está disponível no Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde a próxima atualização de software que contém esse hotfix.

Se o hotfix está disponível para download, há uma seção "Download de Hotfix disponível" na parte superior neste artigo da Base de dados de Conhecimento. Se esta seção não for exibida, contate o atendimento e suporte para obter o hotfix.

Observação Se ocorrerem problemas adicionais ou se qualquer solução de problemas é necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa de números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site:
http://support.microsoft.com/contactus/?ws=support
Observação O formulário "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma, é porque um hotfix não está disponível para esse idioma.

Pré-requisitos

É preciso executar o SQL Server 2005 Service Pack 1 (SP1) para aplicar esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
913089Como obter o service pack mais recente para o SQL Server 2005

Informações sobre reinicialização

Não é necessário reiniciar o computador após aplicar esse hotfix.

Informações do registro

Não é necessário alterar o registro.

Informações sobre o arquivo de hotfix

Esse hotfix contém apenas os arquivos que são necessárias para corrigir os problemas que este artigo lista. Este hotfix não pode conter de todos os arquivos que você deve ter para actualizar completamente um produto para a compilação mais recente.

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (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 no item Data e hora no painel de controle.
Versão do SQL Server 2005 32-bit
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
Logread.exe2005.90.2206.0398,11217 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.AdomdClient.dll9.0.2206.0543,52017 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.deploymentengine.dll9.0.2206.0138,01617 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.dll9.0.2206.01,215,26417 De novembro de 200611: 16x 86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2206.075,55217 De novembro de 200611: 16x 86
Microsoft.SQLServer.SqlEnum.dll9.0.2206.0908,06417 De novembro de 200611: 16x 86
Msasxpress.dll9.0.2206.022,30417 De novembro de 200611: 16x 86
Msgprox.dll2005.90.2206.0197,92017 De novembro de 200611: 16x 86
Msmdlocal.dll9.0.2206.015,614,75217 De novembro de 200611: 16x 86
Msmdredir.dll9.0.2206.03,990,30417 De novembro de 200611: 16x 86
Mssqlsystemresource.ldfNão aplicável524,28816 De novembro de 200613: 58Não aplicável
Mssqlsystemresource.mdfNão aplicável40,108,03216 De novembro de 200613: 58Não aplicável
Replprov.dll2005.90.2206.0547,61617 De novembro de 200611: 16x 86
Replrec.dll2005.90.2206.0782,11217 De novembro de 200611: 16x 86
Sqlaccess.dll2005.90.2206.0347,93617 De novembro de 200611: 16x 86
Sqlagent90.exe2005.90.2206.0318,75217 De novembro de 200611: 16x 86
Sqlservr.exe2005.90.2206.028,964,69617 De novembro de 200611: 16x 86
Sysdbupg.SQLNão aplicável192,34621 De agosto de 200614: 01Não aplicável
Xmlsub.dll2005.90.2206.0192,80017 De novembro de 200611: 10x 86
Xpstar90.dll2005.90.2206.0292,64017 De novembro de 200611: 10x 86
Xpstar90.rll2005.90.2206.0152,86417 De novembro de 200611: 16x 86
SQL Server 2005 x versão 64
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
Logread.exe2005.90.2206.0522,52817 De novembro de 200602: 02x 64
Microsoft.AnalysisServices.AdomdClient.dll9.0.2206.0543,52017 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.AdomdClient.dll9.0.2206.0543,52017 De novembro de 200602: 02x 86
Microsoft.AnalysisServices.deploymentengine.dll9.0.2206.0138,01617 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.dll9.0.2206.01,215,26417 De novembro de 200611: 16x 86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2206.075,55217 De novembro de 200611: 16x 86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2206.091,42417 De novembro de 200602: 02x 64
Microsoft.SQLServer.SqlEnum.dll9.0.2206.0875,29617 De novembro de 200602: 02x 86
Msasxpress.dll9.0.2206.022,30417 De novembro de 200611: 16x 86
Msasxpress.dll9.0.2206.027,42417 De novembro de 200602: 02x 64
Msgprox.dll2005.90.2206.0259,36017 De novembro de 200602: 02x 64
Msmdlocal.dll9.0.2206.015,614,75217 De novembro de 200611: 16x 86
Msmdredir.dll9.0.2206.03,990,30417 De novembro de 200611: 16x 86
Mssqlsystemresource.ldfNão aplicável524,28816 De novembro de 200613: 58Não aplicável
Mssqlsystemresource.mdfNão aplicável40,108,03216 De novembro de 200613: 58Não aplicável
Replprov.dll2005.90.2206.0745,24817 De novembro de 200602: 02x 64
Replrec.dll2005.90.2206.01,008,41617 De novembro de 200602: 02x 64
Sqlaccess.dll2005.90.2206.0355,10417 De novembro de 200602: 02x 86
Sqlagent90.exe2005.90.2206.0389,92017 De novembro de 200602: 02x 64
Sqlservr.exe2005.90.2206.039,371,04017 De novembro de 200602: 02x 64
Sysdbupg.SQLNão aplicável192,34621 De agosto de 200614: 01Não aplicável
Xmlsub.dll2005.90.2206.0317,21617 De novembro de 200602: 02x 64
Xpstar90.dll2005.90.2206.0540,96017 De novembro de 200602: 02x 64
Xpstar90.rll2005.90.2206.0153,37617 De novembro de 200602: 02x 64
Versão de arquitetura Itanium do SQL Server 2005
Recolher esta tabelaExpandir esta tabela
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
Logread.exe2005.90.2206.01,095,45616 De novembro de 200620: 14IA-64
Microsoft.AnalysisServices.AdomdClient.dll9.0.2206.0543,52016 De novembro de 200620: 14x 86
Microsoft.AnalysisServices.AdomdClient.dll9.0.2206.0543,52017 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.deploymentengine.dll9.0.2206.0138,01617 De novembro de 200611: 16x 86
Microsoft.AnalysisServices.dll9.0.2206.01,215,26417 De novembro de 200611: 16x 86
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2206.0163,10416 De novembro de 200620: 14IA-64
Microsoft.SQLServer.mgdsqldumper.dll2005.90.2206.075,55217 De novembro de 200611: 16x 86
Microsoft.SQLServer.SqlEnum.dll9.0.2206.0875,29616 De novembro de 200620: 14x 86
Msasxpress.dll9.0.2206.055,07216 De novembro de 200620: 14IA-64
Msasxpress.dll9.0.2206.022,30417 De novembro de 200611: 16x 86
Msgprox.dll2005.90.2206.0542,49616 De novembro de 200620: 14IA-64
Msmdlocal.dll9.0.2206.048,610,08016 De novembro de 200620: 14IA-64
Msmdredir.dll9.0.2206.06,244,12816 De novembro de 200620: 14IA-64
Mssqlsystemresource.ldfNão aplicável524,28816 De novembro de 200613: 58Não aplicável
Mssqlsystemresource.mdfNão aplicável40,108,03216 De novembro de 200613: 58Não aplicável
Replprov.dll2005.90.2206.01,617,18416 De novembro de 200620: 14IA-64
Replrec.dll2005.90.2206.02,141,47216 De novembro de 200620: 14IA-64
Sqlaccess.dll2005.90.2206.0349,47216 De novembro de 200620: 14x 86
Sqlagent90.exe2005.90.2206.01,141,02416 De novembro de 200620: 14IA-64
Sqlservr.exe2005.90.2206.072,259,87216 De novembro de 200620: 14IA-64
Sysdbupg.SQLNão aplicável192,34621 De agosto de 200614: 01Não aplicável
Xmlsub.dll2005.90.2206.0590,62416 De novembro de 200620: 14IA-64
Xpstar90.dll2005.90.2206.0951,07216 De novembro de 200620: 14IA-64
Xpstar90.rll2005.90.2206.0152,35216 De novembro de 200620: 14IA-64

Como Contornar

Para contornar este problema, tente evitar a recompilação de consulta. Para determinar o motivo para a recompilação, use o método descrito no artigo da Base de dados de Conhecimento da Microsoft 308737. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
308737Como identificar a causa de recompilação em um evento SP:Recompile

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Etapas para reproduzir o problema

  1. Abra o SQL Server Management Studio.
  2. Conecte-se a uma instância do SQL Server 2005.
  3. Create a new query, and then run the following statements.
    use tempdb
    go
    
    create table mytab1 (col1 nvarchar(50), col2 nvarchar(100), col3 int)
    go
    
    create table mytab2 (a int)
    go
    
    insert into mytab1 values ('col1 value', 'col2 value', 1)
    go
    
    insert into mytab2 values (1)
    go
    
    set quoted_identifier off;
    go
    
    sp_create_plan_guide 
    N'myplanguide',
    N'select * from mytab1 join mytab2 on col3 = a where col1 = @p1', 
    N'SQL',
    NULL,
    N'@p1 nvarchar(30)',
    N'OPTION (FAST 40, OPTIMIZE FOR (@p1 = N''col2''))'
    go
    
    select * from sys.plan_guides
    go
    
    sp_executesql N'select * from mytab1 join mytab2 on col3 = a where col1 = @p1', N'@p1 nvarchar(30)', N'col2'
    go
    
    drop table mytab1
    go
    
    create table mytab1 (col1 nvarchar(50), col2 nvarchar(100), col3 int)
    go
    
    sp_executesql N'select * from mytab1 join mytab2 on col3 = a where col1 = @p1', N'@p1 nvarchar(30)', N'col2'
    go
    
    sp_control_plan_guide N'drop all'
    go
    

Referências

Para obter mais informações sobre a dica OPTIMIZE FOR, visite o seguinte site da Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms181714.aspx
Para obter mais informações sobre o esquema para nomeação para atualizações do Microsoft SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL Server
Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 928539 - Última revisão: terça-feira, 20 de novembro de 2007 - Revisão: 1.4
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
Palavras-chave: 
kbmt kbautohotfix kbexpertiseadvanced kbtshoot kbfix kbsql2005engine kbhotfixserver kbqfe kbpubtypekc KB928539 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: 928539

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