Objawy
Rozważmy następujący scenariusz:
- Używasz konfiguracji szacowania kardynalności (CE) odpowiadającej poziomowi zgodności bazy danych 120 lub nowszemu dla Twojego systemu programu Microsoft SQL Server 2016 i 2017.
- Uruchamiane jest zapytanie zawierające predykat wyszukiwania.
- Zapytanie wyszukuje wartości, które są mniejsze lub równe dowolnej liczbie, która jest mniejsza niż minimalna wartość RANGE_HI_KEY przechowywana w obiekcie statystyki. Lub zapytanie wyszukuje wartości większe niż maksymalna wartość RANGE_HI_KEY dla tych samych statystyk.
W tym scenariuszu optymalizator zapytań przeszacowuje liczbę wierszy. Może to prowadzić do wyboru nieoptymalnego planu zapytania i niskiej wydajności.
Rozwiązanie
Poprawka rozwiązująca ten problem jest zawarta w następujących aktualizacjach zbiorczych dla programu SQL Server:
Aktualizacja zbiorcza 6 dla programu SQL Server 2017
Aktualizacja zbiorcza 8 dla programu SQL Server 2016 z dodatkiem SP1
Aktualizacja zbiorcza 2 dla programu SQL Server 2016
Uwaga Po zainstalowaniu tej aktualizacji należy włączyć flagę śledzenia 4199, aby włączyć tę poprawkę. Aby włączyć flagę śledzenia 4199, zobacz temat Flagi śledzenia (Transact-SQL) w witrynie sieci Microsoft Developer Network (MSDN) w sieci Web.
Informacje o aktualizacjach zbiorczych dla programu SQL Server
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.