Re: optimizando Query

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Christian Ortiz <cpalst(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:02:28
Message-ID: AANLkTikws0QMhXlruL7z8Decd3mlwsDGlTxAgkmJqdLE@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2010-05-13 04:07:49 Re: Consulta con logs para auditar
Previous Message Jaime Casanova 2010-05-13 03:38:14 Re: Consulta con logs para auditar