A Microsoft distribui o Microsoft SQL Server 2008 Service Pack 3 (SP3) ou o Microsoft SQL Server 2008 R2 corrige como um arquivo que pode ser baixado. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança incluídas na versão anterior do SQL Server 2008 SP3 ou do SQL Server 2008 R2 Update.
Sintomas
Considere o seguinte cenário:
-
Você cria partições para uma tabela no SQL Server 2008 ou no SQL Server 2008 R2.
-
Não habilite a compactação em todas as partições.
-
Você tenta inserir um registro em uma nova partição vazia.
Nesse cenário, ocorre uma violação de acesso e o seguinte erro é registrado no log de erros do SQL Server:
<Date> <Time> spid## ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt<Date> <Time> spid## SqlDumpExceptionHandler: Process 66 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.<Date> <Time> spid## * BEGIN STACK DUMP:<Date> <Time> spid## * Exception Address = 0000000000C37D22 Module(sqlservr+0000000000137D22)<Date> <Time> spid## * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION<Date> <Time> spid## * Access Violation occurred reading address 0000000000000020
Observação Esse problema também ocorre no Microsoft SQL Server 2008 R2.
Resolução
Informações sobre a atualização cumulativa
Service Pack 2 do SQL Server 2008
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 8 para SQL Server 2008 Service Pack 2. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2648096 Pacote de atualizações cumulativas 8 para SQL Server 2008 Service Pack 2Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 Fix. A Microsoft recomenda que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2402659 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 2 Hotfixes do Microsoft SQL Server 2008 são criados para Service Packs específicos do SQL Server. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 2 a uma instalação do SQL Server 2008 Service Pack 2. Por padrão, qualquer hotfix fornecido em um Service Pack do SQL Server está incluído no próximo Service Pack do SQL Server.
SQL Server 2008 R2
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 11. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 R2, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2633145 Pacote de atualizações cumulativas 11 para SQL Server 2008 R2 Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
981356 As compilações do SQL Server 2008 R2 que foram lançadas após a liberação do SQL Server 2008 R2
SQL Server 2008 R2 Service Pack 1
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 4 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter esse pacote de atualização cumulativa, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2633146 Pacote de atualização cumulativa 4 para SQL Server 2008 R2 Service Pack 1Observação Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior do SQL Server 2008 R2. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2567616 As compilações do SQL Server 2008 R2 que foram lançadas após o lançamento do SQL Server 2008 R2 Service Pack 1
Service Pack 3 do SQL Server 2008
A correção para esse problema foi lançada pela primeira vez no pacote de atualizações cumulativas 2 para SQL Server 2008 Service Pack 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 Service Pack 3, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2633143 Pacote de atualizações cumulativas 2 para SQL Server 2008 Service Pack 3Observação Como as compilações são cumulativas, cada nova versão de atualização contém todos os hotfixes e todas as atualizações de segurança incluídas na versão anterior do SQL Server 2008 Service Pack 3 Update. Recomendamos que você considere a aplicação do lançamento de atualização mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2629969 As compilações do SQL Server 2008 lançadas após o lançamento do SQL Server 2008 Service Pack 3
Informações adicionais
Para confirmar se você está enfrentando o problema descrito neste artigo da base de dados de conhecimento, siga estas etapas:
-
Abra uma conexão DAC com o SQL Server e execute a seguinte consulta:
Use <your_db_name>select * from sys.sysrscols rsc where rsc.rsid in ( select sau.container_idfrom sys.system_internals_allocation_units sau join sys.partitions pt on sau.container_id = pt.partition_idand pt.object_id = object_id(<YourPartitionedTable>) and pt.index_id = 1)
Observação Nesta consulta, <YourPartitionedTable> é um espaço reservado para o nome da tabela de partição.
-
Na saída da consulta, verifique se a coluna rscolid contém um valor grande. Veja a seguir um exemplo de um valor tão grande:
rsid
rscolid
hbcolid
rcmodified
&
CID
ordkey m
72057594380091392
0
1
614911578
56
0
4
72057594380091392
11:00
0,13
614911578
12967
53265
0
72057594380091392
12
quatorze
614911578
32999
53265
0
72057594380091392
0,13
15
614911578
32999
53265
0
72057594380091392
quatorze
16
614911578
59
0
0
72057594380091392
15
16
614911578
59
0
0
72057594380091392
16
dezoito
614911578
1834
0
0
72057594380091392
67108865
pol
614911578
19627
53625
0
72057594380091392
22
23
614911578
56
0
0
72057594380091392
23
24
614911578
10407
53625
0
72057594380091392
24
25
614911578
662636
0
0
Neste exemplo, o valor de 67108865 é significativamente maior do que outros. Isso indica que você está enfrentando o problema descrito neste artigo da base de dados de conhecimento.
Para contornar esse problema, reconstrua as partições afetadas. Entre em contato com o suporte da Microsoft para saber quais são as partições envolvidas. Ou você pode recriar todas as partições usando a seguinte consulta:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".