Ver Mensaje Individual
  #6 (permalink)  
Antiguo 29/08/2012, 11:24
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: "Snapshot too old usando un indice sobre una fecha ¿?

Estos serían los planes de consulta que el SQL Navigator 5 me indica que tomará Oracle:
SQL Statement from editor:


Cita:
Código SQL:
Ver original
  1. SELECT SUM(1)  logid
  2.   FROM LOG_SISTEMA  WHERE
  3.       (TIEMPO BETWEEN
  4.           TO_DATE('07/08/2012 12:00:00', 'DD/MM/YYYY hh24:mi:ss') AND
  5.           TO_DATE('07/08/2012 12:04:59', 'DD/MM/YYYY hh24:mi:ss'))
------------------------------------------------------------

Cost=2,64018716311899E-308

SELECT STATEMENT RULE
(3) SORT AGGREGATE
(2) NON-UNIQUE INDEX RANGE SCAN LOG4NET.TIEMPO_IDX [Not Analyzed]
Cita:
SQL Statement from editor:


Código SQL:
Ver original
  1. SELECT SUM(1)  logid
  2.   FROM LOG_SISTEMA  WHERE
  3.       (TIEMPO
  4.           < TO_DATE('07/08/2012 12:04:59', 'DD/MM/YYYY hh24:mi:ss'))
------------------------------------------------------------

Cost=2,64018716311899E-308

SELECT STATEMENT RULE
(3) SORT AGGREGATE
(2) NON-UNIQUE INDEX RANGE SCAN LOG4NET.TIEMPO_IDX [Not Analyzed]
El detalle del index full scan ha sido bastante revelador, a lo que hay que sumar el hecho de que no existe ningún momento en el día o la semana en que esa tabla y sus índices estén sin uso (se han llegado a computar 1200 entradas/segundo a la taba de logs, en 7*24*365).
Con eso ya tenemos una idea de lo que nos está pasando.
Ahora hemos modificado el SP en el segmento de esa consulta para sortear el problema.
Veremos cómo resulta al entrar en producción.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)