From: | Alfredo Rico <alfredorico(at)gmail(dot)com> |
---|---|
To: | Martín Marqués <martin(at)2ndquadrant(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Como sé si mi hardware ya no me permite ejecutar más rapidamente una setencia SELECT en PostgreSQL |
Date: | 2014-05-05 15:52:16 |
Message-ID: | CAGWUuq2VkLVaPYgxwrjmzBKYJVrQuLHcQo7g_kmYmrNJ40tc_w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Martín sería lo siguiente:
Query:
explain analyze
with CTE as (
select saldo_contable, saldo_contable * tasa_interes /
(sum(saldo_contable) over ()) as tasa
from rm_cuentas_vistas where fecha_snapshot = '2014-03-17'
) select 'Depósitos a la vista' as partida, sum(saldo_contable) as
total_saldo, round(sum(tasa),4) as total_tasa from CTE
;
Explain analyze
QUERY PLAN
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Aggregate (cost=166739.23..166739.25 rows=1 width=52) (actual
time=4324.532..4324.532 rows=1 loops=1)
CTE cte
-> WindowAgg (cost=0.00..135537.58 rows=1248066 width=11) (actual
time=1580.507..2891.732 rows=1043549 loops=1)
-> Index Scan using idx_rm_cuentas_vistas_fecha_snapshot on
rm_cuentas_vistas (cost=0.00..113696.43 rows=1248066 width=11) (actual
time=64.275..741.755 rows=1043549 loops=1)
Index Cond: (fecha_snapshot = '2014-03-17'::date)
-> CTE Scan on cte (cost=0.00..24961.32 rows=1248066 width=52) (actual
time=1580.522..3412.303 rows=1043549 loops=1)
Total runtime: 4336.805 ms
http://explain.depesz.com/s/cBOB
Evidentemente hay un overhead en las agregaciones pero quería empezar por
resolver lo más básico.
2014-05-05 10:44 GMT-04:30 Martín Marqués <martin(at)2ndquadrant(dot)com>:
> El día 5 de mayo de 2014, 10:18, Alfredo Rico <alfredorico(at)gmail(dot)com>
> escribió:
> > Martín, en efecto todas las operaciones se hacen en el motor.
> >
> > Que otra información sugieres que pueda suminsitrar a la lista?. En
> esencia
> > considero que si logro reducir la consulta simple al máximo posible, el
> > overhead de las operaciones de agregado puede ser tolerable.
>
> Toda la información sería el explain de la consulta final, no de una parte.
>
> Saludos,
>
> --
> Martín Marqués http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>
--
Saludos Cordiales.-
Alfredo Rico.
San Cristóbal - Venezuela.
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2014-05-05 16:10:20 | Re: Como sé si mi hardware ya no me permite ejecutar más rapidamente una setencia SELECT en PostgreSQL |
Previous Message | Martín Marqués | 2014-05-05 15:14:09 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Como sé si mi hardware ya no me permite ejecutar más rapidamente una setencia SELECT en PostgreSQL |