publikaccion publikaccion @publikaccion

jueves, febrero 23, 2017

Uso de índices en Oracle y conversiones de fecha

A la hora de emplear índices en las consultas de Oracle, en el caso de que hagamos una conversión si estamos empleando un índice sobre un dato del tipo DATE (fecha), el efectuar una conversión del registro, rompe la celeridad de la query de una forma dramática... pasando de tener una consulta de casi una hora, a realizar una consulta de sólo uno segundos sobre dicho índice.


      select /*+ index(r REPARTO_FECHA_I) */ 
            count(r.FECHA) from REPARTO r where 1=1 
            AND R.FECHA = TO_DATE('01/02/2017', 'DD/MM/YYYY') 
            -- HAY QUE EVITAR USAR ESTE TIPO DE CONVERSION
            -- YA QUE EMPLEA OTRA OPERACION DE CONVERSIONA TO_CHAR 
            -- Y RALENTIZA EL INDICE
            -- AND TO_CHAR(r.FECHA,'DD/MM/YYYY') = '22/02/2017'
            ;

No hay comentarios: