Грешка: #50003826 (актуална корекция за SQL)
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 изгражда
Препратки
За допълнителна информация относно списъка на компилациите, налични след издаването на 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