like con index
¿Es cierto que LIKE se trata de una funcion y por lo tanto si le utiliza un campo indexado lo ignora y lee la tabla completa?
Me explico, todo sabemos que al realizar un EXPLAIN PLAN en Oracle nos permite ver como se ejecuta la consulta, pues bien, si se tiene lo siguiente:
- tabla PRUEBA con campos IDP y FECHA
- indice sobre el campo FECHA de la tabla PRUEBA
Me explico, todo sabemos que al realizar un EXPLAIN PLAN en Oracle nos permite ver como se ejecuta la consulta, pues bien, si se tiene lo siguiente:
- tabla PRUEBA con campos IDP y FECHA
- indice sobre el campo FECHA de la tabla PRUEBA
FECHA = '12/12/2003'
usaria el indice, ahora bien si el = lo cambiamos por un LIKE:
FECHA LIKE '12/12/2003'
¿Esta usaria el indice? (Segun pruebas hechas por mi parece ser que en este caso NO lo utiliza, realiza una lectura completa de la tabla ¿Puede ser debido a que LIKE tiene el mismo uso que una funcion y al estar esta en el WHERE no se utiliza?)
usaria el indice, ahora bien si el = lo cambiamos por un LIKE:
FECHA LIKE '12/12/2003'
¿Esta usaria el indice? (Segun pruebas hechas por mi parece ser que en este caso NO lo utiliza, realiza una lectura completa de la tabla ¿Puede ser debido a que LIKE tiene el mismo uso que una funcion y al estar esta en el WHERE no se utiliza?)