КОРЕКЦИЯ: Получавате грешка 605 и грешка 824, когато изпълнявате заявка, която вмъква данни във временна таблица в SQL Server

Template: CPR – SQL Server 2008 CU individual hotfix

Грешка: #50003826 (актуална корекция за SQL)

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

Microsoft разпространява корекциите за Microsoft SQL Server 2008 като един файл за изтегляне. Тъй като корекциите са сборни, всяка нова версия съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2008 fix съобщение.

Симптоми

SQL Server 2008 изпълните заявка, която вмъква данни във временна таблица. Вмъкване съдържа подзаявка, която препраща към същата временна таблица. Когато изпълните заявка, можете да получите съобщение за грешка, подобно на следното:

MSG 605, ниво 21, команда 3, ред 1Attempt за извличане на логическа страница (1: 225) в база данни 2 е неуспешно. Принадлежи към клъстер 281474980315136 не към 504403158513025024.

Ако стартирате отново заявката, получавате съобщение за грешка, подобно на следното:

Съобщение 824, ниво 24, държавата 2, ред 1

SQL Server откри логическа последователност базирани входно-изходна грешка: неправилна контролна сума (очаква: 0x50758180; действителна: 0x15658bfc). Възникна по време на четене на страница (1: 336) в база данни 2 ИД на изместване 0x000000002a0000 във файл "C:\Program Files\Microsoft SQL Server\MSSQL10. SQL2008\MSSQL\DATA\tempdb.MDF ". Допълнителни съобщения в SQL Server грешка регистър или система на събитията може да предостави повече подробности. Това е състояние на сериозна грешка, която заплашва целостта на базата данни и трябва да бъде коригирано веднага. Изпълнете проверка за съгласуваност на цялата база данни (DBCC CHECKDB). Тази грешка може да се дължи на много фактори; за повече информация вижте SQL Server Books Online.

В някои случаи можете също да получите съобщение за грешка, подобно на следното:

Съобщение 601, ниво 12, команда 3, pиме на процедура, номеране може да продължи сканирането с NOLOCK поради преместване на данни.

Конструкция на възможни заявка, която може да доведе до тези грешки са следните:

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

Решение

Решение за този проблем излезе първо в сборна актуализация 3. За повече информация как да получите този Сборен пакет за SQL Server 2008, щракнете върху следния номер на статия в базата знания на Microsoft:

960484 Пакет със сборни актуализации 3 за SQL Server 2008Забележка Тъй като компилациите са сборни, всяка нова версия на корекцията съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишните SQL Server 2008 fix съобщение. Препоръчително е да приложите най-новата версия на корекцията, който ще съдържа тази корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

956909 Компилации на SQL Server 2008, издадени след издаването на SQL Server 2008След като инсталирате този пакет със сборни актуализации, трябва да разрешите флаг за проследяване 4135. За да направите това, можете да добавите -T4135 параметъра за стартиране. Или, можете да използвате командата dbcc traceon(4135) ред.

Заобиколно решение

За да заобиколите този проблем, добавете колона с клъстери първичен ключ и свойство за самоличност временната таблица. Например изпълнете следната команда, за да промените временната таблица:

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

Статус

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".

Повече информация

Въпреки че вие получавате това съобщение за грешка 824 или 605, базата данни не се поврежда. Освен това тези съобщения за грешки се отнасят за страници от базата данни tempdb.За повече информация относно кои файлове са променени и информация за всички предпоставки за прилагане на сборния пакет за актуализация, която съдържа актуалната корекция, описана в тази статия от базата знания на Microsoft, щракнете върху следния номер на статия, за да видите статия в базата знания на Microsoft:

960484 Пакет със сборни актуализации 3 за SQL Server 2008

SQL Server 2008 R2 BPA информация

SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) предоставя правило за откриване на ситуации, в които нямате сборната актуализация или флаг за проследяване, да разреши този проблем. SQL Server 2008 R2 BPA поддържа SQL Server 2008 и SQL Server 2008 R2. Ако стартирате инструмента BPA и срещнете "Database Engine - tempdb грешки или липсващи флаг за проследяване" предупреждение, трябва да проверите коя версия на SQL Server и флагове за проследяване, които са конфигурирани да активирате корекцията.

Препратки

Софтуер на правилото

Заглавие на правилото

Идентификатор на правилото

SQL Server 2008 R2 BPA правило

грешки в tempdb или липсващи флаг за проследяване

RID3808

Забележка Можете да разрешите флаг за проследяване 4135 или флаг за проследяване 4199, за да активирате корекцията. Флаг за проследяване 4135 беше въведен в пакет със сборни актуализации 3 за SQL Server 2008. Флаг за проследяване 4135 е налична в SQL Server 2008 Service Pack 1 в SQL Server 2008 Service Pack 2 и SQL Server 2008 R2. Флаг за проследяване 4199 беше въведен в пакет със сборни актуализации 7 за SQL Server 2008, в пакет със сборни актуализации 7 за SQL Server 2008 Service Pack 1 и в пакет със сборни актуализации 1 за SQL Server 2008 R2. За повече информация относно флаг за проследяване 4199 щракнете върху следния номер на статия в базата знания на Microsoft:

974006 Флаг за проследяване 4199 е добавен за управление на множество промени в оптимизатора на заявки, направени под много флагове за проследяване Тъй като корекция на този проблем включва комбинация от конкретна актуална корекция компилация и флаг за проследяване, за да активирате корекцията, ние сме включително таблицата за различните сценарии и препоръчителните действия, за да се вземат за всеки случай.За повече информация относно новите версии на SQL Server щракнете върху следния номер на статия в базата знания на Microsoft:

957826 Къде да намерите информация за новите SQL Server изгражда

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

Препратки

За допълнителна информация относно списъка на компилациите, налични след издаването на SQL Server 2008 щракнете върху следния номер на статия в базата знания на Microsoft:

956909 Компилации на SQL Server 2008, издадени след издаването на SQL Server 2008За повече информация за модела на постъпково обслужване за SQL Server щракнете върху следния номер на статия в базата знания на Microsoft:

935897 Моделът за постъпково обслужване се предлага от екипа на SQL Server за предоставяне на спешни корекции за съобщени проблемиЗа повече информация за схемата за именуване на актуализации за SQL Server щракнете върху следния номер на статия в базата знания на Microsoft:

822499Нова схема за именуване на пакети за актуализация на софтуера на Microsoft SQL ServerЗа повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер на статия, за да я видите в базата данни на Microsoft:

824684 Описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft

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

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×