From: | Christian Ortiz <cpalst(at)gmail(dot)com> |
---|---|
To: | Horacio Miranda <hmiranda(at)gmail(dot)com> |
Cc: | Jaime Casanova <jaime(at)2ndquadrant(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: optimizando Query |
Date: | 2010-05-13 04:33:00 |
Message-ID: | AANLkTikEiMd1qEG5KVo20Tm2wsZnSPC-6Bhu2M7mC2uM@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Te agradezco tu gran aporte, voy a investigar sobre ello.
El 12 de mayo de 2010 23:02, Horacio Miranda <hmiranda(at)gmail(dot)com> escribió:
> Hay una tecnica que se llama vista materializada log. (eso es en Oracle).
>
> Basicamente es util cuando debes tener un resumen por ejemplo mensual
> de las sumas de operaciones de ventas por ejemplo.
>
> Tabla Ventas (datos, date).
>
> Todos los meses si necesitas un reporte mensual se puede hacer
>
> Ventas_mensuales (sum(datos), mes) ; que consiste en la suma mensual
> de cada mes.
>
> Ahora si adicional a esto necesitas sumar los datos procesados del
> dia. puede tomar las sumas hechas. y agregarlas las diarias. (de esa
> forma se ahorra mucho tiempo).
>
> Las vistas materializadas Log solo guardan los cambios en cada
> registro según el criterio.
>
> En Postgresql no tengo idea si hay algo como eso, pero se puede
> programar un proceso con triggers para que simule eso.
>
> 2010/5/13 Christian Ortiz <cpalst(at)gmail(dot)com>:
> >
> >
> > Lo habia hecho con una vista, pero lo que pones, esta genial. Muchas
> > gracias.
> >
> > El 12 de mayo de 2010 19:15, Jaime Casanova <jaime(at)2ndquadrant(dot)com>
> > escribió:
> >>
> >> 2010/5/12 Christian Ortiz <cpalst(at)gmail(dot)com>:
> >> > Hola a todos,
> >> >
> >> > tengo q hacer un reporte, donde la consulta tiene varios campos que
> >> > van
> >> > hacer calculados algo asi
> >> >
> >> > select sum(a), sum(b), sum(a)*sum(b), sum(a)*sum(b)*sum(c) form aTable
> >> >
> >> > el problema esta en que las sumas se hacen a cada rato y no una sola
> vez
> >> > por
> >> > lo que con mucha data la consuta se hace terriblemente lenta
> >> >
> >> > probe con
> >> >
> >> > select sum(a) as X, sum(b) as Y, X*Y, X*Y*sum(c) form aTable
> >> >
> >> > pero no reconoce a X ni a Y
> >> >
> >>
> >>
> >> select x, y, x*y, x*y*z
> >> from (select sum(a) as x, sum(b) as y, sum(c) as z from table)
> >>
> >> --
> >> Jaime Casanova www.2ndQuadrant.com
> >> Soporte y capacitación de PostgreSQL
> >
> >
> >
> > --
> > Christian
> >
>
>
>
> --
> Saludos,
> Horacio Miranda Aguilera.
> RedHat Certified Engineer
> DBA Oracle - Large databases
> +56 2 8974500
>
--
Christian
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2010-05-13 04:39:03 | Re: optiminizacion de select (order by desc limit 1) |
Previous Message | Horacio Miranda | 2010-05-13 04:22:05 | Re: optiminizacion de select (order by desc limit 1) |