Poprawka: Błąd 605 i błąd 824 podczas uruchamiania kwerendy, która wstawia dane do tabeli tymczasowej w programie SQL Server

Template: CPR – SQL Server 2008 CU individual hotfix

Błąd: #50003826 (poprawka SQL)

BUG #: 102328 (Content Maintenance)BUG #: 50003826 (SQL Hotfix)

Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 jako jeden plik do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2008 Release.

Objawy

SQL Server 2008 Uruchom kwerendę, która wstawia dane do tabeli tymczasowej. Instrukcja insert zawiera podkwerendę, która odwołuje się do tej samej tabeli tymczasowej. Po uruchomieniu kwerendy, może pojawić się komunikat o błędzie podobny do następującego:

Msg 605, poziom 21, stan 3, 1Attempt linii do pobrania logicznej strony (1:225) w 2 bazy danych nie powiodło się. Należy on do 281474980315136 jednostki alokacji nie do 504403158513025024.

Jeśli ponownie uruchomić kwerendę, pojawi się komunikat o błędzie podobny do następującego:

Msg 824, poziom 24, stan 2, wiersz 1

SQL Server wykrył błąd We/Wy na podstawie spójności logiczne: niepoprawna suma kontrolna (oczekiwany: 0x50758180; rzeczywiste: 0x15658bfc). Wystąpił podczas odczytu strony (1:336), w bazie danych ID 2, przy przesunięciu 0x000000002a0000 w pliku "C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\tempdb.mdf'. Dodatkowe wiadomości w SQL Server dziennika lub systemu zdarzeń dziennik błędów może zawierać więcej szczegółów. To jest poważny błąd, który powoduje integralnością bazy danych i muszą zostać poprawione niezwłocznie. Wykonaj sprawdzanie spójności pełnej bazy danych (DBCC CHECKDB). Ten błąd może być spowodowany przez wiele czynników; Aby uzyskać więcej informacji zobacz SQL Server Books Online.

W niektórych przypadkach może pojawić się komunikat o błędzie podobny do następującego:

Msg 601, poziom 12, stan 3, procedury pprocedura nazwa, numer wierszanie można kontynuować skanowanie z NOLOCK przenoszenia danych.

Konstrukcja możliwe kwerendy, która może produkować tych błędów jest w następujący sposób:

insert #table1select s.col1, s.col2from #table2 s inner loop join #table1 t on s.col3 = t.col3 

Rozwiązanie

Poprawkę dotyczącą tego problemu najpierw została wydana w zbiorczej aktualizacji 3. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

960484 Zbiorczy pakiet aktualizacji 3 dla programu SQL Server 2008Uwaga Ponieważ są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniego programu SQL Server 2008 Release. Firma Microsoft zaleca, aby rozważyć zastosowanie najnowszej wersji poprawki, zawierający tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

956909 SQL Server 2008 buduje wydane po wydaniu programu SQL Server 2008Po zainstalowaniu tego pakietu aktualizacji zbiorczej, musisz włączyć flagę śledzenia 4135. Aby to zrobić, należy dodać -T4135 parametr uruchamiania. Lub można użyć instrukcji dbcc traceon(4135) dla określonej sesji.

Obejście

Aby obejść ten problem, należy dodać kolumny, która ma klucz podstawowy i właściwość tożsamości do tabeli tymczasowej. Na przykład Uruchom następującą instrukcję, aby zmienić Tabela tymczasowa:

ALTER TABLE #TempTableADD id integer IDENTITY(1,1) CONSTRAINT id PRIMARY KEY CLUSTERED

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Więcej informacji

Mimo że wystąpi komunikat o błędzie 824 lub 605 bazy danych nie zostanie uszkodzony. Ponadto te komunikaty o błędach odwołania do stron z bazy danych tempdb.Aby uzyskać więcej informacji o tym, jakie pliki są zmieniane i informacji na temat wymagań wstępnych, aby zastosować pakiet aktualizacji zbiorczej, który zawiera poprawki, którą opisano w tym artykule bazy wiedzy Microsoft Knowledge Base, kliknij następujący numer artykułu w celu wyświetlenia artykuł z bazy wiedzy Microsoft Knowledge Base:

960484 Zbiorczy pakiet aktualizacji 3 dla programu SQL Server 2008

SQL Server 2008 R2 BPA informacji

SQL Server 2008 R2 Best Practice Analyzer (program SQL Server 2008 R2 BPA) zawiera regułę, aby wykryć sytuacje, w których nie masz aktualizacji zbiorczej lub flagi śledzenia włączone do tej kwestii. SQL Server 2008 R2 BPA obsługuje zarówno program SQL Server 2008 i programu SQL Server 2008 R2. Jeśli po uruchomienia narzędzia BPA "Aparatu bazy danych - tempdb naprawić błędy lub brakujące flagi śledzenia" ostrzeżenie sprawdzić wersję programu SQL Server i flagi śledzenia, które są skonfigurowane, aby włączyć tę poprawkę.

Informacje

Reguła oprogramowania

Nazwa reguły

Identyfikator reguły

SQL Server 2008 R2 narzędzie BPA regułę

naprawić błędy TempDB lub brakujące flagi śledzenia

RID3808

Uwaga Można włączyć flagi śledzenia 4135 lub flagę śledzenia 4199, aby włączyć tę poprawkę. Flagi śledzenia 4135 został wprowadzony w pakiecie zbiorczej aktualizacji 3 dla programu SQL Server 2008. Flagi śledzenia 4135 jest również dostępna w dodatku Service Pack 1 dla programu SQL Server 2008, dodatek Service Pack 2 dla programu SQL Server 2008 i programu SQL Server 2008 R2. Flaga śledzenia 4199 został wprowadzony w pakiecie zbiorczej aktualizacji 7 dla programu SQL Server 2008, 7 zbiorczy pakiet aktualizacji dla programu SQL Server 2008 z dodatkiem Service Pack 1 i pakiet aktualizacji zbiorczej 1 dla programu SQL Server 2008 R2. Aby uzyskać więcej informacji na temat flagi śledzenia 4199 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

974006 Flaga śledzenia 4199 jest dodawany do kontroli wielu zmian Optymalizator kwerend wcześniej dokonanych na podstawie wielu flagi śledzenia Ponieważ poprawkę dotyczącą tego problemu polega na kombinacji kompilacji poprawki i flagi śledzenia, aby włączyć tę poprawkę, jesteśmy w tym poniższej tabeli, aby pokazać różne scenariusze i zalecane działanie, aby podjąć dla każdego scenariusza.Aby uzyskać więcej informacji dotyczących najnowszych kompilacjach programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

957826 Gdzie można znaleźć informacje o najnowszych SQL Server tworzy

Call stack information

6338c88c 02ab0ed6 kernel32!RaiseException+0x53
6338c8d8 026b607e sqlservr!CDmpDump::Dump+0x95
6338c910 026b6a49 sqlservr!SQLDumperLibraryInvoke+0x174
6338ca0c 026ae00a sqlservr!CImageHelper::DoMiniDump+0x29d
6338d7bc 026ae713 sqlservr!stackTrace+0x643
6338d7dc 0175ec9e sqlservr!stackTraceCallBack+0x40
6338da74 01222ecb sqlservr!ex_raise2+0x1c6
6338daa0 024b7fb9 sqlservr!ex_raise+0x64
6338dbe8 016dc45c sqlservr!RaiseWrongPageError+0xa7
6338dc54 01006a2e sqlservr!FixPageNotThruLinkage+0x2a5
6338dce0 01006db6 sqlservr!HeapPageManager::GetNextPage+0x185
6338e4a8 015307fd sqlservr!HeapDataSetSession::GetNextRowValuesInternal+0x4df
6338e4f8 015306cc sqlservr!RowsetNewSS::FetchNextRow+0x126
6338e524 01530882 sqlservr!CQScanRowsetNew::GetRowWithPrefetch+0x2b
6338e548 01530182 sqlservr!CQScanTableScanNew::GetRow+0x80
6338e568 015336a5 sqlservr!CQScanHash::ReadRow+0xe9
6338e5ac 01558b24 sqlservr!CQScanHash::ConsumeBuild+0x2bf

Informacje

Aby uzyskać więcej informacji o liście kompilacje, które są dostępne po wydaniu programu SQL Server 2008 kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

956909 SQL Server 2008 buduje wydane po wydaniu programu SQL Server 2008Aby uzyskać więcej informacji o przyrostowych modelu obsługi programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

935897 Przyrostowe modelu obsługi jest dostępne z zespołu programu SQL Server do dostarczania poprawki dla problemów zgłoszonychAby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

822499Nowy schemat nazewnictwa dla pakietów aktualizacji oprogramowania Microsoft SQL ServerAby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

Author (SME): bruceye
Writer: ericzha
Tech Reviewer: bruceye; wcarroll
Editor: v-janhal

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jak zadowalająca jest jakość tłumaczenia?

Co wpłynęło na Twoje wrażenia?

Czy chcesz przekazać jakieś inne uwagi? (Opcjonalnie)

Dziękujemy za opinię!

×