Microsoft distribuie Microsoft SQL Server 2008 Service Pack 3 (SP3) sau Microsoft SQL Server 2008 R2 remediază ca un fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate actualizările de securitate care au fost incluse în versiunea anterioară SQL Server 2008 SP3 sau SQL Server 2008 R2 update release.
Simptome
Luați în considerare următorul scenariu:
-
Creați partiții pentru un tabel în SQL Server 2008 sau în SQL Server 2008 R2.
-
Nu activați comprimarea pe toate partițiile.
-
Încercați să inserați o înregistrare într-o partiție nouă necompletată.
În acest scenariu, apare o încălcare acces și se înregistrează următoarea eroare în Jurnalul de erori 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
Notă Această problemă apare și în Microsoft SQL Server 2008 R2.
Rezolvare
Informații despre actualizarea cumulativă
SQL Server 2008 Service Pack 2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 8 pentru SQL Server 2008 Service Pack 2. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2648096 Pachetul de actualizare cumulativă 8 pentru SQL Server 2008 Service Pack 2Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 fix release. Microsoft recomandă să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2402659 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008 Service Pack 2 Sunt create remedieri rapide Microsoft SQL Server 2008 pentru anumite pachete de servicii SQL Server. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 2 la o instalare de SQL Server 2008 Service Pack 2. În mod implicit, orice remediere rapidă furnizată într-un pachet de servicii SQL Server este inclusă în următorul pachet de servicii SQL Server.
SQL Server 2008 R2
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 11. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2633145 Pachetul de actualizare cumulativă 11 pentru SQL Server 2008 R2 Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 remediată. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
981356 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2
SQL Server 2008 R2 Service Pack 1
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 4 pentru SQL Server 2008 R2 Service Pack 1. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2633146 Pachetul de actualizare cumulativă 4 pentru SQL Server 2008 R2 Service Pack 1Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu versiunea anterioară SQL Server 2008 R2 remediată. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de remediere care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2567616 SQL Server 2008 R2 construiește care au fost lansate după ce s-a lansat SQL Server 2008 R2 Service Pack 1
SQL Server 2008 Service Pack 3
Remedierea pentru această problemă a fost lansată pentru prima dată în pachetul de actualizare cumulativă 2 pentru SQL Server 2008 Service Pack 3. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 Service Pack 3, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2633143 Pachetul de actualizare cumulativă 2 pentru SQL Server 2008 Service Pack 3Notă Deoarece compilările sunt cumulative, fiecare nouă versiune de actualizare conține toate remedierile rapide și toate actualizările de securitate care au fost incluse în versiunea anterioară de actualizare SQL Server 2008 Service Pack 3. Vă recomandăm să luați în considerare aplicarea celei mai recente versiuni de actualizare care conține această remediere rapidă. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a-l vedea în Baza de cunoștințe Microsoft:
2629969 SQL Server 2008 construiește care au fost lansate după ce s-a lansat SQL Server 2008 Service Pack 3
Mai multe informații
Pentru a confirma dacă întâmpinați problema descrisă în acest articol din baza de cunoștințe, urmați acești pași:
-
Deschideți o conexiune DAC la SQL Server și execuți următoarea interogare:
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)
Notă În această interogare, <YourPartitionedTable> este un substituent pentru numele tabelului de partiție.
-
În rezultatul interogării, Verificați dacă coloana rscolid conține o valoare mare. Iată un exemplu de valoare mare:
rsid
rscolid
hbcolid
rcmodified
ti
CID
ordkey madalin
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
În acest exemplu, valoarea 67108865 este semnificativ mai mare decât altele. Acest lucru indică faptul că întâmpinați problema descrisă în acest articol din baza de cunoștințe.
Pentru a rezolva această problemă, reconstruiți partițiile afectate. Contactați asistența Microsoft pentru a afla ce partiții sunt implicate. Sau puteți reconstrui toate partițiile utilizând următoarea interogare:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.