KB3192154 - Nieoptymalny plan zapytania jest niewystarczający w przypadku wyszukiwania wartości spoza zakresu przedstawionego w statystyce w SQL Server 2016 i 2017

Dotyczy
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1

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.