Problema con Indice en campo fecha que permite nulos

09/01/2004 - 09:59 por Guillermo | Informe spam
Tengo una tabla con 5 millones de registros en SQL Server.
Esta tabla, dispone de varios campos. Uno de ellos es un
campo fecha, que admite nulos (smalldatetime).

Al ejecutar consultas contra esta tabla que utilicen el
índice del campo fecha, con la condición FECHA IS NULL en
la cláusula WHERE, me devuelve registros con la FECHA
rellena.

Comprobando el plan de ejecución, observo que realiza un
INDEX SCAN del campo fecha. Si fuerzo a realizar un FULL
SCAN con la cláusula WITH(INDEX(0)), funciona
perfectamente.

He probado a cambiar de smalldatetime a datetime, y sigue
fallando.

He probado a ejecutar consultas para una fecha concreta y
funciona perfectamente, luego sólo falla al utilizar el
índice con consultas FECHA IS NULL. Lo trágico de esto, es
que en SQL Server 7, esto funcionaba correctamente, y
después de migrar a una nueva versión, deja de funcionar.
 

Leer las respuestas

#1 Carlos Sacristan
09/01/2004 - 10:39 | Informe spam
Qué raro... ¿has probado a reindexar el índice del campo fecha?



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Guillermo" escribió en el mensaje
news:027001c3d68e$e7e572e0$
Tengo una tabla con 5 millones de registros en SQL Server.
Esta tabla, dispone de varios campos. Uno de ellos es un
campo fecha, que admite nulos (smalldatetime).

Al ejecutar consultas contra esta tabla que utilicen el
índice del campo fecha, con la condición FECHA IS NULL en
la cláusula WHERE, me devuelve registros con la FECHA
rellena.

Comprobando el plan de ejecución, observo que realiza un
INDEX SCAN del campo fecha. Si fuerzo a realizar un FULL
SCAN con la cláusula WITH(INDEX(0)), funciona
perfectamente.

He probado a cambiar de smalldatetime a datetime, y sigue
fallando.

He probado a ejecutar consultas para una fecha concreta y
funciona perfectamente, luego sólo falla al utilizar el
índice con consultas FECHA IS NULL. Lo trágico de esto, es
que en SQL Server 7, esto funcionaba correctamente, y
después de migrar a una nueva versión, deja de funcionar.

Preguntas similares