Wskazówka dotycząca indeksu jest dostępna tylko dla serwerów baz danych Microsoft Dynamics. W przypadku tradycyjnego serwera SQL filtry zdefiniowane w klauzuli „Where” powinny przekonać silnik do użycia odpowiednich indeksów ... Pod warunkiem, że plan wykonania silnika może skutecznie zidentyfikować sposób odczytywania informacji (czy to pełne skanowanie tabeli, czy skanowanie indeksowane ) - musi porównać te dwa elementy przed wykonaniem właściwej instrukcji, w ramach wbudowanego optymalizatora wydajności.
Możesz jednak zmusić optymalizator do skanowania, używając czegoś takiego jak
Select *
From [yourtable] With (Index(0))
Where ...
Lub poszukać określonego indeksu, używając czegoś takiego jak
Select *
From [yourtable] With (Index(1))
Where ...
Wybór nalezy do ciebie. Przyjrzyj się właściwościom indeksu tabeli w panelu obiektów, aby zorientować się, którego indeksu chcesz użyć. Powinien pasować do twojego filtra (ów).
Aby uzyskać najlepsze wyniki, wypisz filtry, które jako pierwsze zwróciłyby najmniej wyników. Nie wiem, czy mam rację, ale wygląda na to, że filtry zapytań są sekwencyjne; jeśli uzyskasz prawidłową sekwencję, optymalizator nie powinien robić tego za Ciebie, porównując wszystkie kombinacje, a przynajmniej nie rozpoczynać porównania z droższymi zapytaniami.