Symptomy
Rozpatrzmy następujący scenariusz:
-
Użytkownik używa konfiguracji oceny kardynalności (CE) odpowiadającej poziomowi zgodności bazy danych 120 lub nowszej wersji systemu Microsoft SQL Server 2016 i 2017.
-
Uruchom zapytanie zawierające predykat wyszukiwania.
-
Zapytanie wyszukuje wartości mniejsze niż lub równe liczbie mniejszej niż wartość minimalna RANGE_HI_KEY przechowywanych w obiekcie statystyki. Kwerenda wyszukuje wartości, które są większe niż maksymalna wartość RANGE_HI_KEY dla tych samych statystyk.
W tym scenariuszu optymalizator zapytań oszacuje liczbę wierszy. Może to powodować, że wybór planu kwerend jest mniej niż optymalna i niska wydajność.
Rozwiązanie
Poprawka dotycząca tego problemu jest dostępna w następujących zbiorczych aktualizacjach programu SQL Server:
Zbiorcza aktualizacja 6 dla programu SQL Server 2017
Zbiorcza aktualizacja 8 dla programu SQL Server 2016 z dodatkiem SP1
Zbiorcza aktualizacja 2 dla programu SQL Server 2016 Uwaga Po zainstalowaniu tej aktualizacji należy włączyć flagę śledzenia 4199 w celu włączenia tej poprawki. Aby włączyć flagę śledzenia 4199, zobacz temat flagi śledzenia (Transact-SQL) w witrynie internetowej Microsoft Developer Network (MSDN).
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Najnowsza Zbiorcza aktualizacja 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
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.