Microsoft distribuisce Microsoft SQL Server 2008 Service Pack 3 (SP3) o Microsoft SQL Server 2008 R2 risolve un file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione di aggiornamento precedente di SQL Server 2008 SP3 o SQL Server 2008 R2.
Sintomi
Considerare lo scenario descritto di seguito:
-
È possibile creare partizioni per una tabella in SQL Server 2008 o in SQL Server 2008 R2.
-
Non si Abilita la compressione in tutte le partizioni.
-
Si prova a inserire un record in una nuova partizione vuota.
In questo scenario si verifica una violazione di Access e viene registrato il messaggio di errore seguente nel log degli errori di 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
Nota Questo problema si verifica anche in Microsoft SQL Server 2008 R2.
Risoluzione
Informazioni sull'aggiornamento cumulativo
SQL Server 2008 Service Pack 2
La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 8 per SQL Server 2008 Service Pack 2. Per altre informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
2648096 Pacchetto di aggiornamento cumulativo 8 per SQL Server 2008 Service Pack 2Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 FIX. Microsoft consiglia di applicare l'ultima versione di correzione che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:
2402659 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 2 Microsoft SQL Server 2008 hotfix vengono creati per specifici Service Pack di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 2 a un'installazione di SQL Server 2008 Service Pack 2. Per impostazione predefinita, qualsiasi hotfix fornito in un Service Pack di SQL Server è incluso nel prossimo Service Pack di SQL Server.
SQL Server 2008 R2
La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 11. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
2633145 Pacchetto di aggiornamento cumulativo 11 per SQL Server 2008 R2 Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:
981356 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2
SQL Server 2008 R2 Service Pack 1
La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 4 per SQL Server 2008 R2 Service Pack 1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:
2633146 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2008 R2 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:
2567616 Le build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 1
SQL Server 2008 Service Pack 3
La correzione di questo problema è stata rilasciata per la prima volta nel pacchetto di aggiornamento cumulativo 2 per SQL Server 2008 Service Pack 3. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 Service Pack 3, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:
2633143 Pacchetto di aggiornamento cumulativo 2 per SQL Server 2008 Service Pack 3Nota Poiché le compilazioni sono cumulative, ogni nuova versione di aggiornamento contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente dell'aggiornamento di SQL Server 2008 Service Pack 3. Ti consigliamo di considerare l'applicazione della versione di aggiornamento più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:
2629969 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 3
Ulteriori informazioni
Per verificare se si verifica il problema descritto nell'articolo della Knowledge base, eseguire le operazioni seguenti:
-
Aprire una connessione DAC a SQL Server ed eseguire la query seguente:
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)
Nota In questa query <YourPartitionedTable> è un segnaposto per il nome della tabella della partizione.
-
Nell'output della query verificare se la colonna rscolid contiene un valore di grandi dimensioni. Di seguito è riportato un esempio di un valore di grandi dimensioni:
rsid
rscolid
hbcolid
rcmodified
ti
CID,
ordkey m
72057594380091392
0
1
614911578
56
0
4
72057594380091392
11
13
614911578
12967
53265
0
72057594380091392
12
14
614911578
32999
53265
0
72057594380091392
13
15
614911578
32999
53265
0
72057594380091392
14
16
614911578
59
0
0
72057594380091392
15
17
614911578
59
0
0
72057594380091392
17
18
614911578
1834
0
0
72057594380091392
67108865
19
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
In questo esempio, il valore di 67108865 è significativamente più grande di altri. Questo indica che si sta verificando il problema descritto nell'articolo della Knowledge base.
Per risolvere il problema, ricostruire le partizioni interessate. Contattare il supporto tecnico Microsoft per scoprire quali partizioni sono coinvolte. In alternativa, è possibile ricompilare tutte le partizioni usando la query seguente:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".