Estoy tratando de obtener más información sobre el operador del plan de consulta "comprobación de referencias de clave externa" introducido en SQL Server 2016. No hay mucha información al respecto. Microsoft lo anunció aquí y escribí un blog al respecto aquí . El nuevo operador se puede ver eliminando una fila de una tabla primaria con 254 o más referencias de claves externas entrantes: enlace dbfiddle .
Hay tres recuentos diferentes que se muestran en los detalles del operador:
- El recuento de referencias de clave externa es el número de claves externas entrantes.
- El número de índices coincidentes es el número de claves externas entrantes sin un índice adecuado. La verificación de que la tabla actualizada o eliminada no viola esa restricción requerirá un análisis de una tabla secundaria.
- No sé qué representa el recuento de índices de coincidencia parcial .
¿Qué es un índice de coincidencia parcial en este contexto? No pude hacer funcionar ninguno de los siguientes:
- Índices filtrados
- Poner la columna de clave externa como una
INCLUDE
columna para un índice - Índices con la columna de clave externa como la segunda columna de clave
- Índices de una sola columna para claves externas de múltiples columnas
- Crear múltiples índices de cobertura para habilitar un plan de "unión de índice" para una clave externa de múltiples columnas
Dan Guzman señaló que las claves externas de varias columnas pueden coincidir con los índices, incluso si las claves del índice están en un orden diferente al de las columnas de claves externas. Su código está aquí en caso de que alguien pueda usarlo como punto de partida para descubrir más sobre índices de coincidencia parcial.