cálculo de stocks...

21/11/2003 - 13:16 por Tolo | Informe spam
hola,

a ver, esto volverá a llevar cola, espero, por el bién de todos...

Yo tengo en mi BD q el control de stock se calcula a partir de la suma de
las líneas de documentos. Pues bién, yo hasta ahora tenía una funcion
f_stockArticulo, q dado un id_articulo me calculaba su stock a partir de un
select con un sum where articulo =@articulo

Claro, esto muy chulo, pero cuando quería sacar un listado de stock, resulta
que esa función se disparaba para cada artículo lo cual hacía que la
consulta fuera relativamente lenta.

Pensando un poco decidí cambiar, borrar mi f_StockArticulo y crear un
f_ListadoStock, que también hace un sum de lineas, pero no filtra por
artículo, con lo cual en un solo select tengo el stock de todos los
artículos por almacen y tal. Bién, luego he reconstruido mi funcion
f_StockArticulo como:

select * from f_ListadoStock where articulo=@Articulo and almacen=@almacen

Claro, esto hace q el listado de stock sea muy eficiente, pero no se hasta
que punto puede ralentizar el sistema.

Que os parece, valdría la pena haber mantenido mi consulta f_StockArticulo
como estaba antes, o realmente no habrá cambios de velocidad. Mi decisión de
cambiarla fue que si mañana por el motivo que sea, necesito cambiar el
cálculo de stock, solamente tenga q ir a cambiarlo a una función, y así me
aseguro sencillez en el codigo y sobretodo mas fiabilidad.

gracias
 

Leer las respuestas

#1 Accotto Maximiliano D.
21/11/2003 - 13:45 | Informe spam
Tolo !! jeje como estas con estos temas!! vas a tener que invitar una cena
para todos cheee :-)

Mira yo por lo menos no lo veo mal!! aunque disiente de la forma, aca si que
va a discutirse esto:

Yo para esto Desnormalizo la BDD, por lo cual en mi maestro de Articulos y
de Almacenes tengo un campo Qty_on_hand que es el Stock (se actualiza por
triggers)

Pero no entremos en polemicas, son solo formas de hacer las cosas, creo que
cada uno tiene una realidad,practica y experiencia.

Yo la desnormalice en este caso porque la consulta de Stock eran muy
complejas sino y ademas se me ponian un poco densas en algunos casos
(tenemos muchos articulos y transacciones)

Un saludo

Maximiliano Damian Accotto
" Tolo" escribió en el mensaje
news:ONI%
hola,

a ver, esto volverá a llevar cola, espero, por el bién de todos...

Yo tengo en mi BD q el control de stock se calcula a partir de la suma de
las líneas de documentos. Pues bién, yo hasta ahora tenía una funcion
f_stockArticulo, q dado un id_articulo me calculaba su stock a partir de


un
select con un sum where articulo =@articulo

Claro, esto muy chulo, pero cuando quería sacar un listado de stock,


resulta
que esa función se disparaba para cada artículo lo cual hacía que la
consulta fuera relativamente lenta.

Pensando un poco decidí cambiar, borrar mi f_StockArticulo y crear un
f_ListadoStock, que también hace un sum de lineas, pero no filtra por
artículo, con lo cual en un solo select tengo el stock de todos los
artículos por almacen y tal. Bién, luego he reconstruido mi funcion
f_StockArticulo como:

select * from f_ListadoStock where articulo=@Articulo and almacen=@almacen

Claro, esto hace q el listado de stock sea muy eficiente, pero no se hasta
que punto puede ralentizar el sistema.

Que os parece, valdría la pena haber mantenido mi consulta f_StockArticulo
como estaba antes, o realmente no habrá cambios de velocidad. Mi decisión


de
cambiarla fue que si mañana por el motivo que sea, necesito cambiar el
cálculo de stock, solamente tenga q ir a cambiarlo a una función, y así me
aseguro sencillez en el codigo y sobretodo mas fiabilidad.

gracias


Preguntas similares