Symptomy
Rozpatrzmy następujący scenariusz:
-
Kwerenda używająca predykatu nierówności w unikatowej kolumnie GUID w programie SQL Server 2014 lub 2016.
-
Statystyki są aktualizowane za pomocą próbkowania domyślnego. Nowe wiersze są wstawiane do tabeli po ostatniej aktualizacji statystyk.
-
Program SQL Server używa nowej szacowania kardynalności, w której tryb zgodności bazy danych jest ustawiony na 120.
-
Wartości identyfikatorów GUID są rozłożone nierównomiernie w całej tabeli.
W tym scenariuszu po uruchomieniu kwerendy może wystąpić słaba wydajność spowodowana niepoprawną liczbą wierszy predykatu w planie zapytań.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w następującej zbiorczej aktualizacji dla programu SQL Server:
Zbiorcza aktualizacja 6 dla programu SQL server 2014 z dodatkiem Service Pack 1 Aktualizacja zbiorcza 1 dla programu SQL Server 2016Po zainstalowaniu tego pakietu aktualizacji zbiorczej musisz włączyć flagę śledzenia 4199. W tym celu można dodać parametr uruchamiania -T4199 . Możesz też użyć instrukcji DBCC TRACEON (4199) dla konkretnej sesji.
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 2014Najnowsza 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.