Skip site navigation (1) Skip section navigation (2)

Re: Vistas Materializadas Vs, Vistas Comunes

From: Arturo Munive <arturomunive(at)gmail(dot)com>
To: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
Cc: Alvaro Herrera <alvherre(at)commandprompt(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Vistas Materializadas Vs, Vistas Comunes
Date: 2007-12-31 13:34:38
Message-ID: 4778EFEE.8060103@gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Gabriel Hermes Colina Zambra escribió:
> Comento que solucione otro problema de indole
> parecido, resulta que quiero saber el saldo por
> movimiento o sea el saldo por cada fila, para una
> consulta dada, bueno hasta ahora con view que se
> leyera a si mismo mediante una sub consulta con join o
> sin el me habia resultado comodo, pero 5 anios de
> informacion generaron un problema de lentitud
Ese es un problema que yo también había considerado que  sucedería, pero 
lo estaba dejando para "lueguito"
si no te entiendo mal es el caso de:

Mov   Entrada  Salida  Saldo
01      10            0         10
02      20            0         30
03      0              5         25
04      15            0         40
05      0            12         28        

donde el valor saldo de la segunda línea es Saldo de la linea 
anterior+entrada de la segunda
es decir 10+20 = 30


> estudiando el caso de vistas materializadas me di
> cuenta que ponerlo en produccion me llevaria basante
> tiempo. Tampoco tenia el recurso de oracle que permite
> leer el dato de la fila anterior en el siguiente
> registro, 
Como me gustaría tener mas tiempo y conocimiento en postgresql para 
poder implementar una utilidad como esa, pero
primero aprende a caminar .. luego a correr :)


> Entonces probe algo que se asemeja al
> concepto de tabla materializada, y es lo siguiente,
> cree una tabla auxiliar con la estructura de la
> consulta mas un campo saldo, 
Esa es una tabla temporal, o una común?
> con una funcion lleno el
> saldo hasta una fecha dada, puedo filtrar por una
> empresa o todas y determino una fecha final, luego
> mediante la opcion for variable_registro IN select *
> from consulta where xxxx loop;hago los insert de los
> registros desde el saldo hasta el final cargando el
> campo saldo con una variable que lee el campo entrada
> y el campo salida, lo cual me permite mostrar una
> ficha de articulo o un saldo de deudores o acreedores
> con una rapidez que bajo de 50 segundos a 20 ms para
> una cantidad similar de registros a tu prueba en las
> lineas y la mitad aprox en los cabezales de los
> documentos.
A mi criterio la solución iba por ahí también, pero aun no la he 
implementado,
habrá alguna otra manera de  hacer eso , mas simple?
>
> Bueno te digo esto por que realmente, solucione algo
> usando un metodo que para este caso es bueno y es una
> tercera opcion a tener en cuenta. La verdad que
> Pl/pgsql es una excelente herramienta y para hacer  lo
> que te conte es excelente.
>
Obviamente lo es, mi primera acción para afrontar un problema es 
plantear la solución mas simple que puedo originar yo mismo, luego me 
gusta ver las soluciones de otra gente , y comparar y tratar de hacer 
una mixtura de ambas. Me gusta aplicar eso de Newton que decía algo como 
esto "Yo miré mas lejos por que me paré en los hombros de gigantes"
así que si algo ya está hecho o hay una solución mejor que la mía Pues 
bienvenida sea.

Para este caso en particular pues yo creo la solución es la misma, otra 
que se me ocurría era que en el lado del cliente ir calculando los 
saldos a medida que la tabla se iba mostrando, Es decir cada vez que mi 
Componente JTable (Java - Swing)
me pedía una fila mi modelo de datos devolvía lo que en la consulta de 
la base de datos le devolvía y calculaba el saldo en el lado del 
cliente, el problema que iba viendo en eso era cuando hacia paginación 
iba a ser un poco fastidioso, bueno cuando tenga la solución la estaré 
posteando por acá.


> Arturo, Alvaro, Lista en general que tengan un feliz
> anio nuevo   al igual que yo lo voy a tener por que
> este hilo me dio un gran aporte a un problema a
> mediano plazo.
>
Saludos a todos Igualmente, y Un FELIZ AÑO ( a ustedes q lo reciben 
horas antes, que los que estamos mas al oeste cerca del pacifico)


In response to

pgsql-es-ayuda by date

Next:From: Arturo Munive [pgsql-es-ayuda]Date: 2007-12-31 13:39:25
Subject: Consulta con saldo de la fila anterior
Previous:From: Gabriel Hermes Colina ZambraDate: 2007-12-31 02:07:28
Subject: Re: Algo no defini bien ? o fallo FK

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group