Я намагаюся дізнатися більше про оператор плану запитів "перевірка посилань на іноземні ключі", запроваджений у SQL Server 2016. Там не так багато інформації про нього. Корпорація Майкрософт оголосила про це тут, і я тут про це блогувала . Нового оператора можна побачити, видаливши рядок із батьківської таблиці з 254 або більше вхідними посиланнями іноземних ключів: dbfiddle посилання .
У реквізитах оператора відображаються три різних рахунки:
- Кількість посилань на іноземні ключі - це кількість вхідних іноземних ключів.
- Немає відповідних індексів - кількість вхідних іноземних ключів без відповідного індексу. Перевірка того, що оновлена або видалена таблиця не порушує цього обмеження, потребує сканування дочірньої таблиці.
- Я не знаю, що означає кількість індексів часткового узгодження .
Що таке частковий показник відповідності в цьому контексті? Мені не вдалося змусити нічого з наступного:
- Фільтровані індекси
- Розміщення стовпчика іноземного ключа як
INCLUDE
стовпця для індексу - Індексує стовпчик із зовнішнім ключем як другий стовпчик ключів
- Індекси одного стовпця для іноземних ключових стовпців
- Створення декількох індексів, що охоплюють, щоб увімкнути план "приєднання індексу" для зовнішнього ключа з декількома стовпцями
Ден Гузман зазначив, що іноземні ключі з декількома стовпцями можуть відповідати індексам, навіть якщо індексні ключі в іншому порядку, ніж стовпці із зовнішніми ключами. Його код тут в разі , якщо хто - то може використовувати його як в якості початкової точки , щоб з'ясувати більше про часткові індексів відповідності.