Symptomy
Rozpatrzmy następujący scenariusz:
-
Uruchomienie procedury w programie Microsoft SQL Server 2014 lub SQL Server 2012.
-
Procedura zawiera następujące warunki:
-
Umożliwia dołączenie do tabeli, która jest często aktualizowana.
-
Zawiera klauzulę WHERE zawierającą parametry.
-
Używa opcji (RECOMPILE).
-
-
Ta procedura jest uruchamiana dla wielu jednoczesnych połączeń z różnymi zestawami wartości parametrów.
-
Serwer jest w dużym obciążeniu, co powoduje, że każda z tych procedur zajmuje więcej czasu niż zwykle.
W tym scenariuszu może wystąpić niepoprawna liczba wyników procedury, która jest uruchamiana w trakcie połączenia, jeśli w przedziale czasu między zakończeniem kompilacji kwerendy i rozpoczęciem wykonywania zapytania w połączeniu są spełnione następujące dodatkowe warunki:
-
Warunek 1: inne jednoczesne połączenie udostępnia w tabeli sprzężonej aktualizacje, które są wystarczająco duże, aby wyzwolić kolejną ponowną kompilację zapytania w połączeniu.
-
Warunek 2: to samo zapytanie zostało ponownie skompilowane z innego połączenia, a następnie wprowadzone w pamięci podręcznej.
Ważne Ten problem z chronometrażem jest niezwykle rzadki.
Przyczyna
Ten problem występuje, ponieważ wartości parametrów kwerendy są zmieniane na niepoprawne wartości po uruchomieniu zapytania w połączeniu. Dzieje się tak z powodu bardzo rzadkich problemów dotyczących czasu, jakie występują między kompilacjami współbieżnymi.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 4 dla programu SQL Server 2014 /en-us/help/2999197
Zbiorcza aktualizacja 2 dla programu SQL Server 2012 z dodatkiem SP2 /en-us/help/2983175
Zbiorcza aktualizacja 11 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2975396
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:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".