Symptomy
Rozpatrzmy następujący scenariusz:
-
Próba uruchomienia kwerendy przy użyciu domyślnego oszacowania kardynalności , gdy jest włączona poprawka histogramu.
-
Kwerenda uwzględnia wyrażenia w kolumnie, która jest używana w jednym z predykatów.
W tym scenariuszu występuje naruszenie zasad dostępu. Ponadto wyświetlany zostanie następujący komunikat o błędzie:
Msg 596, poziom 21, stan 1, wiersz LineNumber Nie można kontynuować wykonywania, ponieważ sesja jest w stanie niszczącym. Msg 0, poziom 20, stan 0, wiersz LineNumber W bieżącym poleceniu wystąpił poważny błąd. Ewentualne wyniki należy odrzucić.
Uwaga Zmianę histogramu można włączyć przy użyciu opcji zapytania "Wskazówka use (" ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS ') lub flagi śledzenia 4139.
Rozwiązanie
Ten problem rozwiązano w następujących aktualizacjach programu SQL Server:
Zbiorcza aktualizacja 8 dla programu SQL Server 2017
Zbiorcza aktualizacja 5 dla programu SQL Server 2016 z dodatkiem Service Pack 2
Informacje o kompilacjach programu SQL Server
Każda nowa kompilacja dla programu SQL Server zawiera wszystkie poprawki hotfix i poprawki zabezpieczeń, które znajdowały się w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla Twojej wersji programu SQL Server:
Najnowsza kompilacja dla programu SQL Server 2017
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2016
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Informacje
DBCC TRACEON-Śledź flagi (Transact-SQL)
Informacje na temat standardowej terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.