El día 7 de mayo de 2009 13:39, Ernesto Quiñones <ernes...@gmail.com> escribió: > que tal amigos > este es el explain analyze: > > explain analyze select a.FlgCobroLlamada, a.FlgCelular, > a.FlgStatusCDR, a.CodMesFactura, a.CodCiudadDestino, a.CodNpa, > a.TipLlamada, a.CodSubMotivoEstadoCliente, a.CodEstadoCliente, > a.CodPuntoVenta, a.CodCicloFacturacionCliente, b.codpaisubigeocliente, > b.codpaisfacturacion, a.CodOperador, a.CodEmpresaUT, > to_date(substr(CAST(a.codhora as text),1,8),'yyyymmdd'), > a.TipConexion, a.TipAcceso, sum(a.MtoCostoValorizado), > sum(a.MtoMinutosTotalesValorizado) from f_consumo a join > lcl_maecliente b on (a.codcliente=b.codcliente)group by > a.FlgCobroLlamada, a.FlgCelular, a.FlgStatusCDR, a.CodMesFactura, > a.CodCiudadDestino, a.CodNpa, a.TipLlamada, > a.CodSubMotivoEstadoCliente, a.CodEstadoCliente, a.CodPuntoVenta, > a.CodCicloFacturacionCliente, b.codpaisubigeocliente, > b.codpaisfacturacion, a.CodOperador, a.CodEmpresaUT, > to_date(substr(CAST(a.codhora as text),1,8),'yyyymmdd'), > a.TipConexion, a.TipAcceso > ; > QUERY PLAN > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > GroupAggregate (cost=6793590.06..7973814.93 rows=15228708 width=106) > (actual time=2811295.104..5198116.245 rows=5750514 loops=1) > -> Sort (cost=6793590.06..6831661.83 rows=15228708 width=106) > (actual time=2811295.056..5119747.291 rows=15228708 loops=1) > Sort Key: a.flgcobrollamada, a.flgcelular, a.flgstatuscdr, > a.codmesfactura, a.codciudaddestino, a.codnpa, a.tipllamada, > a.codsubmotivoestadocliente, a.codestadocliente, a.codpuntoventa, > a.codciclofacturacioncliente, b.codpaisubigeocliente, > b.codpaisfacturacion, a.codoperador, a.codempresaut, > (to_date(substr((a.codhora)::text, 1, 8), 'yyyymmdd'::text)), > a.tipconexion, a.tipacceso > Sort Method: external merge Disk: 1971456kB > -> Hash Join (cost=6819.01..1437289.10 rows=15228708 > width=106) (actual time=1302.791..196625.524 rows=15228708 loops=1) > Hash Cond: ((a.codcliente)::text = > (b.codcliente)::text) > -> Seq Scan on f_consumo a (cost=0.00..429172.08 > rows=15228708 width=112) (actual time=4.052..65973.189 rows=15228708 > loops=1) > -> Hash (cost=4555.45..4555.45 rows=123245 width=18) > (actual time=1298.143..1298.143 rows=123245 loops=1) > -> Seq Scan on lcl_maecliente b > (cost=0.00..4555.45 rows=123245 width=18) (actual time=14.092..953.654 > rows=123245 loops=1) > Total runtime: 5217852.883 ms > (10 filas) > >
Creo que una forma de mejorarla es creando index en lcl_maecliente y f_consumo en las columnas que haces el join (si no es que no queres reformular toda la consulta nuevamente). > OS: Linux > Hardware: Servidor Dell 2gb de ram y HD sata, procesador Core 2 duo > saludos > > El día 7 de mayo de 2009 10:16, Ernesto Quiñones <ernes...@gmail.com> > escribió: >> que tal amigos >> gracias por las respuestas, antes de correr los queryas ejecuto un >> vacuum full analyze sobre toda la db (proque tengo como 3 de esos que >> jalan diferentes tablas) >> estoy generando un explain analyze (demorará en botarme la respuesta) >> para poder enviarlo y ver que esta pasando con los indices aunque >> facil es un seq scan por la cantidad de data >> >> en un rato les envilo los detalles de lo que me informo el pgsql el explain >> >> saludos >> > > > > -- > Inscribete en las listas de APESOL > http://www.apesol.org/listas.php > > Visita > http://www.eqsoft.net > Manuales, noticias, foros, etc. > -- > TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo > -- Emanuel Calvo Franco Sumate al ARPUG ! ( www.arpug.com.ar) ArPUG / AOSUG Member -- TIP 2: puedes desuscribirte de todas las listas simultáneamente (envía "unregister TuDirecciónDeCorreo" a majord...@postgresql.org)