Symptomy

Błąd potwierdzenia może wystąpić, gdy program Microsoft SQL Server wielokrotnie wykonuje procedurę przechowywaną wykonującą następujące czynności:

  • Pobiera duży obiekt, taki jak varchar (max) lub varbinary (max), jako argument i

  • Tworzy tabelę tymczasową, która podlega zakresowi wykonania procedury, i

  • Używa argumentu duże obiekty w tabeli tymczasowej.

W dzienniku błędów programu SQL Server można znaleźć błąd potwierdzenia podobny do następującego:

Błądidentyfikatora SPID daty/godziny: 17065; ważność: 16; stan: 1. 

Data/godzina Identyfikator SPID programu SQL Server: plik: FilePath \filename, line = LineNumber nie potwierdzeń = fFalse ' próba uzyskania dostępu do wygasłego dojścia obiektu BLOB (1). Ten błąd może być związany z chronometrażem. Jeśli błąd będzie nadal występował po ponownym uruchomieniu instrukcji, użyj polecenia DBCC CHECKDB w celu sprawdzenia integralności bazy danych w strukturze strukturalnej lub ponownego uruchomienia serwera, aby upewnić się, że struktury danych w pamięci nie są uszkodzone.

Błąd identyfikatora SPID daty/godziny : 3624; ważność: 20; stan: 1.

Identyfikator SPID daty/godzinysprawdzania potwierdzenia systemu nie powiodło się. Zobacz dziennik błędów programu SQL Server, aby uzyskać szczegółowe informacje. Zazwyczaj błąd potwierdzenia jest spowodowany błędem oprogramowania lub uszkodzeniem danych. Aby sprawdzić, czy baza danych jest uszkodzona, warto skorzystać z polecenia DBCC CHECKDB. Jeśli użytkownik wyraził zgodę na wysłanie zrzutów do firmy Microsoft podczas konfiguracji, do firmy Microsoft zostanie wysłany mini zrzut. Aktualizacja może być dostępna w firmie Microsoft w najnowszym dodatku Service Pack lub w ramach poprawki z pomocy technicznej.

Przyczyna

Program SQL Server oferuje wewnętrzną logikę, aby wyłączyć buforowanie zapytań, które odwołują się do dużych obiektów, tak aby kolejne operacje nie odwoływać się do tych LOBs (które zostały utworzone podczas wcześniejszych uruchomień i w związku z tym są nieprawidłowe dla kolejnych uruchomień). Ta logika nie obsługiwała przypadku odroczonego rozpoznawania nazw (DNR) w tabelach tymczasowych, które spowodowały, że te plany są buforowane. Tworzenie zakresów tymczasowych tabel jest kosztowne, a program SQL Server przechowuje je w celu ponownego użycia w kolejnych wykonaniach. Uniemożliwia to ponowne skompilowanie takich zapytań ze względu na zmiany w schemacie.

Dowiedz się więcej na temat odroczonego rozpoznawania nazw.

Rozwiązanie

Ten problem został rozwiązany w następujących zbiorczych aktualizacjach programu SQL Server:

       Zbiorcza aktualizacja 8 dla programu SQL Server 2016 z dodatkiem SP1  

       Zbiorcza aktualizacja 4 dla programu SQL Server 2017

       Zbiorcza aktualizacja 10 dla programu SQL Server 2014 z dodatkiem Service Pack 2

Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki hotfix i poprawki zabezpieczeń, które występowały w poprzedniej kompilacji. Zapoznaj się z najnowszą aktualizacją zbiorczą dla programu SQL Server:

Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2016

Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2017

najnowsze aktualizacje zbiorcze dla programu SQL Server 2014

Stan

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

Informacje

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.

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?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×