Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

fazer o otimizador usar todas as colunas de um índice


nós realmente encontramos a causa deste problema. Estamos usando JPA/JDBC e os tipos de data JDBC não foram modelados corretamente. Enquanto o tipo de data oracle é com segunda precisão, alguém (agora eu o odeio) fez o atributo "dia" em nossa entidade do tipo java.sql.Timestamp (embora seja apenas dia sem hora). O efeito é que o Oracle precisará para converter (usar uma função em) cada entrada na tabela para torná-la um carimbo de data/hora antes de poder comparar com o parâmetro de consulta carimbo de data/hora. Dessa forma, o índice não pode ser usado corretamente.