Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2010, 16:25
Avatar de webness
webness
 
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Problema de optimizacon tabla grande

HOLA TENGO UNA TABLA CON APROXIMADAMENTE UNOS 120.000 REGISTROS Y CON 92 CAMPOS.

NECESITO HACER ESTE QUERY
Código SQL:
Ver original
  1. SELECT    sp.ciudad,sp.nombre_localidad AS localidad,
  2.                 sp.periodo,
  3.                 sp.nivsocio,
  4.                 to_char(SUM(sp.htotal),'999g999g999') AS htotal,
  5.                 to_char(SUM(sp.h0509),'999g999g999') AS h0509,
  6.                 to_char(SUM(sp.h1014),'999g999g999') AS h1014  
  7. FROM       servcon_poblaingas_76001 sp  
  8. WHERE    sp.codigo_localidad IN ('10') AND
  9.                 sp.periodo IN ('2007','2008','2009') AND
  10.                 sp.nivsocio IN ('3','4')
  11. GROUP BY sp.ciudad,localidad,sp.periodo,sp.nivsocio
  12. ORDER BY localidad,periodo,nivsocio

la primera ves que lo lance hiban mas de 3 minutos y nada que terminaba, le puse un indice

Código SQL:
Ver original
  1. CREATE INDEX idx_localidad_periodo_nivsocio ON servcon_poblaingas_76001 USING btree(codigo_localidad, periodo, nivsocio);

que se creo rapidamente y volvi a lanzar el query y se seguio demorando, despues quitando el indice me demore mas de 10 minutos.

Ensaye el query pero sin las sumas y se demoro maximo 96 milisegundos.

mi pregunta puntual es: como puedo obtimizar este query para que las sumas y los indices sea mas prudencial el tiempo de ejecucion.