Estou tentando aprender mais sobre o operador de plano de consulta "verificação de referências de chave estrangeira" introduzido no SQL Server 2016. Não há muitas informações sobre isso por aí. A Microsoft anunciou aqui e eu escrevi sobre isso aqui . O novo operador pode ser visto excluindo uma linha de uma tabela pai com 254 ou mais referências de chave estrangeira recebidas: dbfiddle link .
Existem três contagens diferentes exibidas nos detalhes do operador:
- Referências de chaves estrangeiras Contagem é o número de chaves estrangeiras recebidas.
- Nenhuma contagem de índices correspondente é o número de chaves estrangeiras recebidas sem um índice adequado. A verificação de que a tabela atualizada ou excluída não violará essa restrição exigirá uma verificação de uma tabela filha.
- Não sei o que a Contagem Parcial de Índices Correspondentes representa.
O que é um índice de correspondência parcial nesse contexto? Não consegui fazer funcionar nenhum dos seguintes itens:
- Índices filtrados
- Colocando a coluna de chave estrangeira como uma
INCLUDE
coluna para um índice - Indexa com a coluna de chave estrangeira como a segunda coluna de chave
- Índices de coluna única para chaves estrangeiras de várias colunas
- Criando vários índices de cobertura para permitir um plano de "junção de índice" para uma chave estrangeira de várias colunas
Dan Guzman apontou que as chaves estrangeiras de várias colunas podem corresponder aos índices, mesmo que as chaves de índice estejam em uma ordem diferente das colunas de chaves estrangeiras. Seu código está aqui , caso alguém possa usá-lo como ponto de partida para descobrir mais sobre índices de correspondência parcial.