Próbuję dowiedzieć się więcej na temat operatora planu zapytań „sprawdzanie referencji klucza obcego” wprowadzonego w SQL Server 2016. Nie ma na ten temat zbyt wielu informacji. Microsoft ogłosił to tutaj, a ja blogowałem o tym tutaj . Nowego operatora można zobaczyć, usuwając wiersz z tabeli nadrzędnej z 254 lub więcej przychodzącymi odwołaniami do kluczy obcych: dbfiddle link .
Istnieją trzy różne liczby wyświetlane w szczegółach operatora:
- Liczba odwołań do kluczy obcych to liczba przychodzących kluczy obcych.
- Brak pasującej liczby indeksów to liczba przychodzących kluczy obcych bez odpowiedniego indeksu. Sprawdzenie, czy zaktualizowana lub usunięta tabela nie naruszy tego ograniczenia, będzie wymagać skanowania tabeli podrzędnej.
- Nie wiem, co reprezentuje indeks częściowego dopasowania .
Co to jest indeks częściowego dopasowania w tym kontekście? Nie byłem w stanie uzyskać żadnego z poniższych:
- Filtrowane indeksy
- Umieszczenie kolumny klucza obcego jako
INCLUDE
kolumny dla indeksu - Indeksuje z kolumną klucza obcego jako drugą kolumną klucza
- Indeksy jednokolumnowe dla kluczy obcych o wielu kolumnach
- Tworzenie wielu indeksów obejmujących, aby umożliwić plan „przyłączenia indeksu” dla klucza obcego z wieloma kolumnami
Dan Guzman wskazał, że klucze obce wielu kolumn mogą pasować do indeksów, nawet jeśli klucze indeksu są w innej kolejności niż kolumny kluczy obcych. Jego kod jest tutaj, na wypadek, gdyby ktoś mógł go użyć jako punktu wyjścia, aby dowiedzieć się więcej na temat indeksów częściowego dopasowania.