Re: querys pesados

From: Rafael Martinez <r(dot)m(dot)guerrero(at)usit(dot)uio(dot)no>
To: Ernesto Quiñones <ernestoq(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: querys pesados
Date: 2009-05-07 17:24:12
Message-ID: 4A03193C.1000902@usit.uio.no
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ernesto Quiñones wrote:
> que tal amigos
> este es el explain analyze:

> 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)
>

Hola

El problema esta en que tienes que ordenar 15.228.708 de entradas por
culpa del "group by" .

Que estais intentando hacer con esta consulta? Calcular la suma total de
a.MtoCostoValorizado y a.MtoMinutosTotalesValorizado para todas las
entradas de f_consumo en donde
f_consumo.codcliente=lcl_maecliente.codcliente?

Si es esto lo que quereis hacer, porque no utilizais un sub-select y
calculais la suma para los dos atributos con los datos del sub-select?
asi os ahorrais el tener que ordenar 15.228.708 de entradas (esto es lo
que mas tiempo ocupa)

Ya contaras
--
Rafael Martinez, <r(dot)m(dot)guerrero(at)usit(dot)uio(dot)no>
Center for Information Technology Services
University of Oslo, Norway

PGP Public Key: http://folk.uio.no/rafael/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ernesto Quiñones 2009-05-07 17:33:05 Re: querys pesados
Previous Message Ernesto Quiñones 2009-05-07 16:39:50 Re: querys pesados