Symptomy
Rozpatrzmy następujący scenariusz:
-
Masz bardzo dużą tabelę FILESTREAM.
-
Kwerenda usuwająca wierszy w tabeli FILESTREAM służy do tworzenia kosztownego planu kwerend, takiego jak taki, który jest filtrowany według wewnętrznego sprzężenia do innej dużej tabeli w systemie.
-
Optymalizator kwerend wybiera równoległy plan wykonania.
W tym scenariuszupojawi się ssertion, a w dzienniku błędów programu SQL Server mogą pojawić się komunikaty o błędach podobne do następujących:
DateTime SPID SpidNumber błąd: 5553; ważność: 20; stan: 6.
DateTime SPID SpidNumber błąd wewnętrzny programu SQL Server. Menedżer FILESTREAM nie może kontynuować działania bieżącego polecenia.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Rozwiązanie
Ten problem został rozwiązany w następujących zbiorczych aktualizacjach programu SQL Server:
-
Zbiorcza aktualizacja 6 dla programu SQL Server 2016 z dodatkiem SP2
-
Zbiorcza aktualizacja 14 dla programu SQL Server 2016 z dodatkiem SP1
-
Zbiorcza aktualizacja 2 dla programu SQL Server 2014 z dodatkiem SP3
-
Zbiorcza aktualizacja 16 dla programu SQL Server 2014 z dodatkiem SP2
Informacje dotyczące aktualizacji zbiorczych dla programu SQL Server:
Każda nowa Zbiorcza aktualizacja dla programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzednim Zbiorcza aktualizacja. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Obejście
W przypadku obejścia tego problemu, funkcja yOU może stosować następującą metodę:
Przenieś zapytanie INNER JOIN do oddzielnego zestawienia i Zapisz wyniki w tabeli tymczasowej. Następnie uruchom zapytanie usuwające filtrowane według wpisów w tabeli tymczasowej. Ponadto można zwiększyć próg kosztu równoległego, aby zmusić Optymalizator do serializacji planu zapytań.
Na przyk³ad:
Wybierz pozycję RefTable. alias do #T z bazy danych DB. dbo. INNER JOIN. dbo.
GDZIE w obszarze Outer. alias > 30006 i Outer. vel < 30010
Usuń z bazy danych. dbo. Tworząc Miejsce, w którym alias (SELECT * FROM #T)
Informacje
Informacje o terminologii Firma Microsoft używa do opisywania aktualizacji oprogramowania.