Symptomy
Po przeszukaniu widoku w programie Microsoft SQL Server 2014 lub 2016 może upłynąć trochę czasu, jeśli porównano go do wykonania w programie SQL Server 2008 R2.
Po wykonaniu kwerendy korzystającej z funkcji UNION ALL i celu wiersza (na przykład w przypadku pierwszych klauzul N, szybkiego N lub EXISTS) może się okazać, że kwerenda działa wolniejszie w programie SQL Server 2014 lub nowszym, jeśli jest porównywana z programem SQL Server 2008 R2.
Przyczyna
W programie SQL Server 2008 R2 optymalizator zapytań zmienia kolejność różnych części w obszarze UNION ALL, jeśli cel wiersza jest obecny, więc najtańsza część zostanie przeszukana. Umożliwia to wykonanie kwerendy, jeśli tańsze części dadzą wymaganą liczbę wierszy, bez konieczności ciągłego wykonywania bardziej kosztownych części. Takie zmiany kolejności nie występują w nowszych wersjach programu SQL Server.
Rozwiązanie
Ten problem został rozwiązany w następującej zbiorczej aktualizacji dla programu SQL Server:
Zbiorcza aktualizacja 7 dla programu SQL Server 2016 RTM
Zbiorcza aktualizacja 4 dla programu SQL Server 2016 z dodatkiem SP1
Zbiorcza aktualizacja 6 dla programu SQL Server 2014 z dodatkiem SP2
Uwaga W przypadku tego problemu musi być włączony Optimiser zapytań.
Aby uzyskać więcej informacji na temat optymalizatora zapytań i flag śledzenia, Skorzystaj z następujących linków:
Poprawka programu SQL Server Query Optymalizatora TF 4199 Servicing model
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 2016
Najnowsza Zbiorcza aktualizacja dla programu SQL Server 2014
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Informacje
Informacje o terminologiiużywanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.