Forma de aplicar facturas.

27/05/2004 - 00:53 por Jorge Morales | Informe spam
Hola Grupo

Ante todo gracias por su tiempo, necesito de su consejo para ver si mejoro
un proceso de mi sistema.

Resumen de Ambiente:

a) vb 6, sql server 2000 como base de datos

b)un modulo de facturacion, en el cual en promedio son 15 o 20 lineas por
factura.

c)Un catalogo de productos de 15,000 productos, unos 30 posibles usuarios
concurrentes al proceso,
unas 40,000 facturas por mes.

d)Una base de pedidos con 2 millones de lineas.

e)Cuatro Sucursales remotas por anchos de banda que oscilan entre 128 y 256
k

Actualmente al aplicar una factura (confirmarla) realizo mas o menos las
siguientes intrucciones,
por ejemplo para aplicar el pedido '00001' :

BEGINTRANSACTION

Update Productos set Saldo = Saldo - Pedidos.Cantidad
FROM Pedidos
WHERE Productos.CodigoProducto = Pedidos.CodigoProducto
AND Pedidos.NumeroPedido = '00001'

** Luego inserto la factura en cuentas x Cobrar y otras cosilla mas

COMITTRAN

Es mucho mas que eso, pero lo que quiero expresar es que el update para
rebajar los saldos lo realizo en una sola instruccion.


Pregunta:

Esta mal esta forma de aplicacion ??, seria mejor tener una marca linea por
linea de la factura, y que el Begin y ComitTran sea linea por linea, con
todos los dolores de cabeza de contemplar que no cierren el dia si hay
pedidos en los que no se aplicaron todas las lineas, y que no lo puedan
modificar ni borrar, y la posibilidad de tener rebajado el saldo pero un
pedido a medio confirmar (si se cae por alguna razon), ademas de tener que
manejar un estado por factura para los multiples procesos por los que tiene
que pasar al aplicarse ???

A veces se me pone muy lento la aplicacion de pedidos, y necesito mejorarlo.

Una mas: Actualmente tengo un servidor con 2 procesadores xeon 2.4, y 2
gygas ram, que configuracion recomiendan ustedes para un servidor con estas
necesidades ??



En espera de sus comentarios y sugerencias,


Jorge Morales
 

Leer las respuestas

#1 Maxi
27/05/2004 - 02:26 | Informe spam
Hola, hay otras formas de hacer esto.

1) implementar un trigger para que cuando se inserten lineas en la factura
automaticamente recalcule el saldo en tu maestro de articulos

2) no tener un total en el maestro de articulos y crear una vista indexada
para dicha funcion

La opcion 1 es buena opcion pero es muy dificil su mantenimiento, puede
llegar a tener inconsistencias y hasta ser lento

La opcion 2 no requiere mantenimiento, es mucho mas rapida y no tendras
inconsistencias!! el gran problema que si ya tienes una aplicacion que para
saber el saldo consulta un campo del maestro, vas a tener que cambiar eso
por la consulta a la vista indexada.

Generalmente este vista indexada solo deberia tener Id,saldo y nada mas!!

Como recomendacion personal mia y por varias pruebas que he realizado te
comento que la opcion 2 es mucho mejor que la opcion 1.

Espero que te haya sido de utilidad.

Un abrazo


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Jorge Morales" escribió en el mensaje
news:
Hola Grupo

Ante todo gracias por su tiempo, necesito de su consejo para ver si mejoro
un proceso de mi sistema.

Resumen de Ambiente:

a) vb 6, sql server 2000 como base de datos

b)un modulo de facturacion, en el cual en promedio son 15 o 20 lineas por
factura.

c)Un catalogo de productos de 15,000 productos, unos 30 posibles usuarios
concurrentes al proceso,
unas 40,000 facturas por mes.

d)Una base de pedidos con 2 millones de lineas.

e)Cuatro Sucursales remotas por anchos de banda que oscilan entre 128 y


256
k

Actualmente al aplicar una factura (confirmarla) realizo mas o menos las
siguientes intrucciones,
por ejemplo para aplicar el pedido '00001' :

BEGINTRANSACTION

Update Productos set Saldo = Saldo - Pedidos.Cantidad
FROM Pedidos
WHERE Productos.CodigoProducto = Pedidos.CodigoProducto
AND Pedidos.NumeroPedido = '00001'

** Luego inserto la factura en cuentas x Cobrar y otras cosilla mas

COMITTRAN

Es mucho mas que eso, pero lo que quiero expresar es que el update para
rebajar los saldos lo realizo en una sola instruccion.


Pregunta:

Esta mal esta forma de aplicacion ??, seria mejor tener una marca linea


por
linea de la factura, y que el Begin y ComitTran sea linea por linea, con
todos los dolores de cabeza de contemplar que no cierren el dia si hay
pedidos en los que no se aplicaron todas las lineas, y que no lo puedan
modificar ni borrar, y la posibilidad de tener rebajado el saldo pero un
pedido a medio confirmar (si se cae por alguna razon), ademas de tener que
manejar un estado por factura para los multiples procesos por los que


tiene
que pasar al aplicarse ???

A veces se me pone muy lento la aplicacion de pedidos, y necesito


mejorarlo.

Una mas: Actualmente tengo un servidor con 2 procesadores xeon 2.4, y 2
gygas ram, que configuracion recomiendan ustedes para un servidor con


estas
necesidades ??



En espera de sus comentarios y sugerencias,


Jorge Morales


Preguntas similares