sql >> Base de Datos >  >> RDS >> Oracle

hacer que el optimizador use todas las columnas de un índice

en realidad encontramos la causa de este problema. Estamos usando JPA/JDBC y los tipos de fecha de JDBC no se modelaron correctamente. Si bien el tipo de fecha de Oracle es de segunda precisión, alguien (ahora lo odio) creó el atributo "día" en nuestra entidad de tipo java.sql.Timestamp (aunque solo es un día sin hora). El efecto es que Oracle necesitará para convertir (usar una función en) cada entrada de la tabla para convertirla en una marca de tiempo antes de que pueda compararse con el parámetro de consulta de marca de tiempo. De esa manera, el índice no se puede usar correctamente.