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:42:11
Message-ID: AANLkTik6gNm0eJavjkOigdMKdN_wFV7ZSP4mOKienQet@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Disculpa puse enviar antes de terminar.

Revisando informacion (mientras me molestaron por cosas de la pega me
distraje).. revisa esto

http://tech.jonathangardner.net/wiki/PostgreSQL/Materialized_Views#Example_of_a_Snapshot_Materialized_View

So no spy experto en postgresql pero me imagino que debe haber un
codigo hecho por ahi en alguna parte.

Un dato, en una parte de telefonica, tenina un sistema que buscaba las
facturas de todas las llamas, era un sistema que tenia dos partes, una
parte era un proceso que hacia ordenamiento binario de todos los
telefonos y otra parte con el trafico diario.

No se los por menores, pero cuando hise el curso de base de datos a
ese grupo de atento, me comentaron que el sistema se demoraba 1
segundo en entregar los datos, frente a eso es dificil de mejorar,
recuerdad que las base de datos, son para guardar los datos y los
motores no son los lentos, es la forma en que sacas la data la
lenta... revisa bien como sacar la data y un cambio menor puede
generar un impacto mayor. (ignoro tu sistema) pero offline si me
envias mensajes de procesos lentos, te puedo ayudar un poco. (cuando
se tenga la solción final) se puede poner en la lista (es para no
infectar la lista de información inutil).

2010/5/13 Christian Ortiz <cpalst(at)gmail(dot)com>:
> 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
>

--
Saludos,
Horacio Miranda Aguilera.
RedHat Certified Engineer
DBA Oracle - Large databases
+56 2 8974500

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fernando Siguenza 2010-05-13 04:54:21 Consulta con group by
Previous Message Jaime Casanova 2010-05-13 04:39:03 Re: optiminizacion de select (order by desc limit 1)