Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema que se produce al crear el índice junto con la Column IS NULL expresión de predicado en SQL Server.
Versión del producto original: SQL Server
Número de KB original: 3051225
Síntomas
Considere el caso siguiente:
- Cree un índice filtrado junto con la
Column IS NULLexpresión de predicado en SQL Server. - El campo Columna no se incluye en la estructura de índice. (Es decir, el El campo de columna no es una clave ni una columna incluida en la definición de índice filtrado).
Por ejemplo, cree la consulta siguiente:
CREATE UNIQUE CLUSTERED INDEX i_action_rn ON dbo.filter_test (rn)
CREATE NONCLUSTERED INDEX i_action_filt_action_date_type ON dbo.filter_test (action_type)
WHERE action_date IS NULL
Nota:
Esta consulta no usa el siguiente índice filtrado:
SELECT count(*) FROM dbo.filter_test WHERE action_date IS NULL AND action_type=1
En este escenario, no se usa el índice filtrado. En su lugar, se usa el índice agrupado.
Solución
Para resolver este problema, incluya la columna que se prueba como NULL en las columnas devueltas. O bien, agregue esta columna como columnas de inclusión en el índice.
CREATE NONCLUSTERED INDEX New_i_action_filt_action_date_type ON dbo.filter_test (action_type) include (action_date) WHERE action_date IS NULL