Długo szukałem i wciąż nie znalazłem odpowiedzi na mój problem.
Nasz system Dynamics AX generuje zapytania z podpowiedzią OPCJI (SZYBKIE x), która czasami wymusza użycie złego planu wykonania. Deweloperzy twierdzą, że jest to domyślnie i trudno je zmienić (należy to naprawić potencjalnie we wszystkich formularzach).
Tak więc szukałem sposobu na przesłonięcie tych wskazówek za pomocą flag śledzenia. Znalazłem cudowną flagę śledzenia 8722, która rzekomo powoduje, że SQL Server ignoruje pewne wskazówki dotyczące zapytań, szczególnie te w klauzuli OPTION.
Jednak to nie działa w moim przypadku. Próbowałem również włączyć flagę śledzenia 8602 (wyłącz wskazówki indeksu), ale moje zapytanie nadal działa z podpowiedź FAST x (jest znacznie wolniejsze niż wtedy, gdy faktycznie usuwam klauzulę OPTION).
Próbowałem również wyczyścić pamięć podręczną planu, ale bezskutecznie.
Jakieś pomysły? Czy coś mi brakuje?
PS Włączyłem flagi śledzenia na całym świecie, to jest SQL Server 2012 Developer Edition
źródło
Odpowiedzi:
O ile mi wiadomo, flagi śledzenia 8722, 8755 i 8602 nigdy nie zostały oficjalnie udokumentowane. Ostatni raz pamiętam, że były skuteczne w SQL Server 2000, więc nic dziwnego, że zauważyłeś, że są one ignorowane w SQL Server 2012.
W przypadku określonych wzorców zapytań często można usunąć
FAST n
podpowiedź za pomocą przewodników planu. Mimo to najlepszym rozwiązaniem jest zachęcenie programistów AX do naprawy tego po stronie aplikacji.źródło