Uso de indices
Publicado por iriover (7 intervenciones) el 02/06/2008 12:19:24
CASO A )
SELECT COUNT(1) FROM POLIZA WHERE N_POLIZA > 900 hace un FULL SCAN
CASO B)
SELECT COUNT(1) FROM POLIZA WHERE N_POLIZA = 900 va por indice.
La tabla POLIZA tiene una primary key por N_POLIZA (number) y claro esta un indice por N_POLIZA.
El caso A realiza un full scan y el caso B no.
Hay 299.992 registros y solo al realizar SELECT COUNT(1) FROM POLIZA WHERE N_POLIZA > 266033 es cuando entra por el índice, a falta de 33967 registros si es superior a este numero no entra por el índice.
¿podria alguien decirme por que? ¿como hacer que vaya por el indice sin forzar el uso de dicho indice?
Gracias de antemano.
SELECT COUNT(1) FROM POLIZA WHERE N_POLIZA > 900 hace un FULL SCAN
CASO B)
SELECT COUNT(1) FROM POLIZA WHERE N_POLIZA = 900 va por indice.
La tabla POLIZA tiene una primary key por N_POLIZA (number) y claro esta un indice por N_POLIZA.
El caso A realiza un full scan y el caso B no.
Hay 299.992 registros y solo al realizar SELECT COUNT(1) FROM POLIZA WHERE N_POLIZA > 266033 es cuando entra por el índice, a falta de 33967 registros si es superior a este numero no entra por el índice.
¿podria alguien decirme por que? ¿como hacer que vaya por el indice sin forzar el uso de dicho indice?
Gracias de antemano.
Valora esta pregunta


0