CORRECÇÃO: Uma violação de acesso é registada no ficheiro Errorlog do SQL Server quando executar uma consulta que utiliza um guia de plano no SQL Server 2005

Traduções de Artigos Traduções de Artigos
Artigo: 928539 - Ver produtos para os quais este artigo se aplica.
N.º de bugs: 50000452 (correcção SQL)
Importante
A Microsoft distribui correcções Microsoft SQL Server 2005 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova versão contém todas as correcções e todas as correcções de segurança incluídas com o SQL Server 2005 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Nesta página

Este artigo descreve o seguinte sobre esta versão de correcção:
  • Problemas corrigidos por este pacote de correcções
  • Pré-requisitos para instalar o pacote de correcções
  • Informações sobre se tem de reiniciar o computador depois de instalar o pacote de correcção
  • Informações sobre se o pacote de correcções é substituído por qualquer outro pacote de correcção
  • Informações sobre se terá de efectuar quaisquer alterações de registo
  • Ficheiros contidos no pacote de correcção

Sintomas

Quando executa uma consulta que utiliza um guia de plano no SQL Server 2005, a consulta pode falhar intermitentemente. Além disso, uma violação de acesso semelhante à seguinte é registada no ficheiro de SQL Server Errorlog:
08-2006-23 13:34:10.48 spid438 *** pilha informação a ser enviada para H:\MSSQL\LOG\SQLDump0016.txt
08-2006-23 13:34:10.48 spid438 SqlDumpExceptionHandler: processo 438 gerado excepção fatal EXCEPTION_ACCESS_VIOLATION c0000005. SQL Server está a terminar este processo.
2006-08-23 13:34:10.48 spid438 * *******************************************************************************
08-2006-23 13:34:10.48 spid438 *
08-2006-23 13:34:10.48 spid438 * BEGIN informação de pilha:
08-2006-23 13:34:10.48 spid438 * 08/23/06 13:34:10 spid 438
08-2006-23 13:34:10.48 spid438 *
08-2006-23 13:34:10.48 spid438 *
08-2006-23 13:34:10.48 spid438 * endereço de excepção = 00000000034CE1D0 Module(sqlservr+00000000024CE1D0)
08-2006-23 13:34:10.48 spid438 * código de excepção = c0000005 EXCEPTION_ACCESS_VIOLATION
08-2006-23 13:34:10.48 spid438 * violação de acesso ao ler endereços 0000000000000010
Este problema ocorre caso se verifiquem as seguintes condições:
  • A consulta utiliza um guia de plano.
  • A consulta aceita alguns parâmetros.
  • O guia de plano aplica-se a sugestão OPTIMIZAR para a consulta.
  • A consulta é novamente compilada antes de executar a consulta.

Resolução

Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentado, contacte o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Terá de ter o SQL Server 2005 Service Pack 1 (SP1) para aplicar esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
913089Como obter o service pack mais recente para o SQL Server 2005

Informações sobre reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações de registo

Não é necessário alterar o registo.

Informações sobre ficheiros da correcção

Esta correcção contém apenas os ficheiros necessários para corrigir os problemas referidos neste artigo. Esta correcção não pode conter de todos os ficheiros que necessita para actualizar completamente um produto para a compilação mais recente.

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). 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 no item Data e hora no painel de controlo.
Versão do SQL Server 2005 32 bits
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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-Ago-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 64 versão
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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-Ago-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 da arquitectura Itanium do SQL Server 2005
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
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-Ago-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 recompilation consulta. Para determinar o motivo para o recompilation, utilize o método descrito no artigo da base de dados de conhecimento da Microsoft 308737. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
308737Como identificar a causa do recompilation num evento SP:Recompile

Ponto Da Situação

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

Mais Informação

Passos para reproduzir o problema

  1. Abra o SQL Server Management Studio.
  2. Ligar 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 sugestões para OPTIMIZAR, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms181714.aspx
Para obter mais informações sobre o esquema de atribuição de nomes para actualizações do Microsoft SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
822499Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 928539 - Última revisão: 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 2005 Server Enterprise
  • 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 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: 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