Eroare: #50003826 (Remediere rapidă SQL)
Microsoft distribuie remedierile Microsoft SQL Server 2008 ca fișier unic ce se poate descărca. Deoarece remedierile sunt cumulative, fiecare ediție nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu remedierea anterioară a SQL Server 2008.
Simptome
În SQL Server 2008, rulați o interogare care inserează date într-un tabel temporar. Instrucțiunea insert conține o subinterogare care face referire la același tabel temporar. Când rulați interogarea, este posibil să primiți un mesaj de eroare care seamănă cu următorul:
Notă
Msg 605, Level 21, State 3, Line 1
Încercarea de preluare a paginii logice (1:225) din baza de date 2 nu a reușit. Aparține unității de alocare 281474980315136 nu 504403158513025024.
Dacă executați din nou interogarea, primiți un mesaj de eroare care seamănă cu următorul:
Notă
- Msg 824, Level 24, State 2, Line 1
- SQL Server detectat o eroare I/O bazată pe consistență logică: sumă de verificare incorectă (așteptat: 0x50758180; real: 0x15658bfc). Aceasta a avut loc în timpul unei citiri a paginii (1:336) în ID-ul bazei de date 2 la 0x000000002a0000 de deplasare din fișierul "C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\tempdb.mdf". Mesajele suplimentare din jurnalul de erori SQL Server sau jurnalul de evenimente de sistem pot oferi mai multe detalii. Aceasta este o condiție de eroare severă care amenință integritatea bazei de date și trebuie corectată imediat. Parcurgeți o verificare completă a consistenței bazei de date (DBCC CHECKDB). Această eroare poate fi cauzată de mai mulți factori; Pentru mai multe informații, consultați Cărți online despre SQL Server.
În unele cazuri, este posibil, de asemenea, să primiți un mesaj de eroare care seamănă cu următorul:
Notă
Mesaj 601, Nivel 12, Stare 3, Nume procedură deprocedură, Număr de linie
Imposibil de continuat scanarea cu NOLOCK din cauza mișcării datelor.
Un construct posibil de interogare care poate produce aceste erori este după cum urmează:
insert #table1
select s.col1, s.col2
from #table2 s inner loop join #table1 t
on s.col3 = t.col3
Rezolvare
Remedierea pentru această problemă a fost lansată pentru prima dată în actualizarea cumulativă 3. Pentru mai multe informații despre cum se obține acest pachet de actualizări cumulative pentru SQL Server 2008, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
960484 Pachetul de actualizare cumulativă 3 pentru SQL Server 2008Notă, deoarece compilările sunt cumulative, fiecare remediere nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu remedierea anterioară de la SQL Server 2008. Vă recomandăm să luați în considerare aplicarea celei mai recente remedieri 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:
956909 Compilările SQL Server 2008 care au fost lansate după lansarea SQL Server 2008După ce instalați acest pachet de actualizare cumulativă, trebuie să activați semnalizarea de urmărire 4135. Pentru a face acest lucru, puteți adăuga parametrul de pornire -T4135. Sau puteți utiliza instrucțiunea dbcc traceon(4135) pentru o anumită sesiune.
Soluție
Pentru a rezolva această problemă, adăugați la tabelul temporar o coloană care conține atât o cheie primară în clustere, cât și o proprietate de identitate. De exemplu, rulați următoarea instrucțiune pentru a modifica tabelul temporar:
ALTER TABLE #TempTable
ADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Mai multe informații
Deși întâlniți mesajul de eroare 824 sau 605, baza de date nu se deteriorează. De asemenea, aceste mesaje de eroare fac referire la pagini din baza de date tempdb.
Pentru mai multe informații despre fișierele modificate și pentru informații despre cerințele preliminare pentru aplicarea pachetului de actualizare cumulativă care conține remedierea rapidă descrisă în acest articol din Baza de cunoștințe Microsoft, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
960484 Pachetul de actualizare cumulativă 3 pentru SQL Server 2008
Informații despre SQL Server 2008 R2 BPA
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) oferă o regulă pentru a detecta situațiile în care nu aveți actualizarea cumulativă sau semnalizarea de urmărire activată pentru a rezolva această problemă. SQL Server 2008 R2 BPA acceptă atât SQL Server 2008, cât și SQL Server 2008 R2.
Dacă rulați instrumentul BPA și întâmpinați un avertisment "Motor bază de date - remediere erori tempdb sau semnalizare de urmărire lipsă", trebuie să verificați versiunea de SQL Server și semnalizatoarele de urmărire configurate pentru a activa această remediere.
Referințe
| Software reguli | Titlul regulii | Identificatorul regulii |
|---|---|---|
| Regulă BPA SQL Server 2008 R2 | Erori tempdb Lipsește semnalizatorul de remediere sau de urmărire | RID3808 |
Notă: puteți activa semnalizarea de urmărire 4135 sau semnalizarea de urmărire 4199 pentru a activa această remediere. Semnalizarea de urmărire 4135 a fost introdusă în pachetul de actualizare cumulativă 3 pentru SQL Server 2008. Semnalizatorul de urmărire 4135 este disponibil și în SQL Server 2008 Service Pack 1, în SQL Server 2008 Service Pack 2 și în SQL Server 2008 R2. Semnalizarea de urmărire 4199 a fost introdusă în pachetul de actualizare cumulativă 7 pentru SQL Server 2008, în pachetul de actualizare cumulativă 7 pentru SQL Server 2008 Service Pack 1 și în pachetul de actualizare cumulativă 1 pentru SQL Server 2008 R2. Pentru informații suplimentare despre semnalizarea de urmărire 4199, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
974006 Semnalizarea de urmărire 4199 este adăugată pentru a controla modificările multiple ale optimizatorului de interogare făcute anterior sub semnalizări de urmărire multiple Deoarece remedierea pentru această problemă implică o combinație între o compilare specifică de remediere rapidă și un semnalizator de urmărire pentru a activa remedierea, includem următorul tabel pentru a afișa diferitele scenarii și acțiunile recomandate pentru fiecare scenariu.
Pentru mai multe informații despre cele mai recente compilări SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
957826 Unde găsiți informații despre cele mai recente compilări SQL Server
Referințe
Pentru mai multe informații despre lista de compilări disponibile după lansarea SQL Server 2008, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
956909 Compilările SQL Server 2008 care au fost lansate după lansarea SQL Server 2008
Pentru informații suplimentare despre modelul incremental de service pentru SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
935897 Un model incremental de service este disponibil de la echipa SQL Server pentru a livra remedieri rapide pentru problemele raportate
Pentru mai multe informații despre schema de denumire pentru actualizările SQL Server, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
822499 Schemă de denumire nouă pentru pachetele de actualizări software Microsoft SQL Server Pentru mai multe informații despre terminologia actualizării de software, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
824684 Descrierea terminologiei standard care este utilizată pentru a descrie actualizările de software Microsoft