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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Jorge Morales
27/05/2004 - 02:27 | Informe spam
Hola Maxi

Muchas gracias por contestar.

La opcion 1 no me es viable porque primera se digita un pedido, pero no
necesariamente se llega a facturar, o puede llegar a facturarse dias o hasta
meses despues de que se digito, aunque talvez una forma seria un trigger de
modificacion sobre el campo de estado de la factura, voy a analizarlo mas.


Lo de la vista indexada, nunca las he manejado, pero me parece que alguien
dijo que solo la version Enterprise de SqlServer permitia crearle indices a
las vistas (Si estoy equivocado por favor alguien que me aclare), y la
version que tengo es la estandar. El problema es que los saldos realmente
los llevo por bodega (base con bodega, codigo, saldo, estante etc) con lo
que realmente la tabla donde tengo que ir a rebajar los saldos tiene hasta
200,000 registros en uno de mis clientes que tiene como 99 bodegas.


Voy a documentarme mas sobre las vistas, de primera entrada me cuesta
visualizarlo, pues utilizo el saldo para muchos calculos, promedios
ponderados etc, pero puede ser ignorancia de mi parte.

Te gradezco mucho tus observaciones, y soy todo oidos a todas las ideas que
se les ocurra.

Saludos

Jorge Morales
Respuesta Responder a este mensaje
#3 Jorge Morales
27/05/2004 - 03:23 | Informe spam
Gracias de nuevo, voy a buscar articulos sobre el uso correcto de las vistas
e indices sobre las mismas.

Si no es mucho molestar, que requerimientos de server consideras adecuado
para estos niveles de transacciones ?


Saludos

Jorge Morales

"Maximiliano Damian Accotto" wrote in
message news:
Hola Jorge!! en la version Standard de Sql Server service Pack 3a podes


usar
sin problemas las vistas indexadas :-).

Ahora bien, si tienes saldos pos depositos mas a mi favor, yo veria la


forma
de armar la vista donde diga.

Codigo_articulo,almacen,saldo

luego esa columna saldo la podrias usar para lo que gustes!! la ventaja de
esto es que si alguien quiere saber el saldo de un articulo al dia de hoy,
con solo llamar la vista funcionaria y como esta indexada lo hara de forma
optima :-)

Te aconsejo este modelo, yo asi tengo un sistema que dia tras dia se meten
mas de 5.000 transacciones y hay mas de 50.000 articulos, ni hablar de los
pedidos,etc.

en principio tenia triggers, luego lo pase a este modelo y me ha sido


mucho
mejor!!

Suerte


Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Jorge Morales" escribió en el mensaje
news:
> Hola Maxi
>
> Muchas gracias por contestar.
>
> La opcion 1 no me es viable porque primera se digita un pedido, pero no
> necesariamente se llega a facturar, o puede llegar a facturarse dias o
hasta
> meses despues de que se digito, aunque talvez una forma seria un trigger
de
> modificacion sobre el campo de estado de la factura, voy a analizarlo


mas.
>
>
> Lo de la vista indexada, nunca las he manejado, pero me parece que


alguien
> dijo que solo la version Enterprise de SqlServer permitia crearle


indices
a
> las vistas (Si estoy equivocado por favor alguien que me aclare), y la
> version que tengo es la estandar. El problema es que los saldos


realmente
> los llevo por bodega (base con bodega, codigo, saldo, estante etc) con


lo
> que realmente la tabla donde tengo que ir a rebajar los saldos tiene


hasta
> 200,000 registros en uno de mis clientes que tiene como 99 bodegas.
>
>
> Voy a documentarme mas sobre las vistas, de primera entrada me cuesta
> visualizarlo, pues utilizo el saldo para muchos calculos, promedios
> ponderados etc, pero puede ser ignorancia de mi parte.
>
> Te gradezco mucho tus observaciones, y soy todo oidos a todas las ideas
que
> se les ocurra.
>
> Saludos
>
> Jorge Morales
>
>


Respuesta Responder a este mensaje
#4 Maximiliano Damian Accotto
27/05/2004 - 03:37 | Informe spam
Hola Jorge!! en la version Standard de Sql Server service Pack 3a podes usar
sin problemas las vistas indexadas :-).

Ahora bien, si tienes saldos pos depositos mas a mi favor, yo veria la forma
de armar la vista donde diga.

Codigo_articulo,almacen,saldo

luego esa columna saldo la podrias usar para lo que gustes!! la ventaja de
esto es que si alguien quiere saber el saldo de un articulo al dia de hoy,
con solo llamar la vista funcionaria y como esta indexada lo hara de forma
optima :-)

Te aconsejo este modelo, yo asi tengo un sistema que dia tras dia se meten
mas de 5.000 transacciones y hay mas de 50.000 articulos, ni hablar de los
pedidos,etc.

en principio tenia triggers, luego lo pase a este modelo y me ha sido mucho
mejor!!

Suerte


Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



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

Muchas gracias por contestar.

La opcion 1 no me es viable porque primera se digita un pedido, pero no
necesariamente se llega a facturar, o puede llegar a facturarse dias o


hasta
meses despues de que se digito, aunque talvez una forma seria un trigger


de
modificacion sobre el campo de estado de la factura, voy a analizarlo mas.


Lo de la vista indexada, nunca las he manejado, pero me parece que alguien
dijo que solo la version Enterprise de SqlServer permitia crearle indices


a
las vistas (Si estoy equivocado por favor alguien que me aclare), y la
version que tengo es la estandar. El problema es que los saldos realmente
los llevo por bodega (base con bodega, codigo, saldo, estante etc) con lo
que realmente la tabla donde tengo que ir a rebajar los saldos tiene hasta
200,000 registros en uno de mis clientes que tiene como 99 bodegas.


Voy a documentarme mas sobre las vistas, de primera entrada me cuesta
visualizarlo, pues utilizo el saldo para muchos calculos, promedios
ponderados etc, pero puede ser ignorancia de mi parte.

Te gradezco mucho tus observaciones, y soy todo oidos a todas las ideas


que
se les ocurra.

Saludos

Jorge Morales


Respuesta Responder a este mensaje
#5 Maxi
27/05/2004 - 05:08 | Informe spam
Hola, como va a ser molestia que me preguntes :-)

mira todo dependera de muchos factores pero creo que con un Xeon 1.6 en
adelante y 2gb de RAM vas a estar mas que bien!!!

Recorda que la version STD de SqlServer solo ve hasta 3gb de RAM maximo :(


Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Jorge Morales" escribió en el mensaje
news:
Gracias de nuevo, voy a buscar articulos sobre el uso correcto de las


vistas
e indices sobre las mismas.

Si no es mucho molestar, que requerimientos de server consideras adecuado
para estos niveles de transacciones ?


Saludos

Jorge Morales

"Maximiliano Damian Accotto" wrote in
message news:
> Hola Jorge!! en la version Standard de Sql Server service Pack 3a podes
usar
> sin problemas las vistas indexadas :-).
>
> Ahora bien, si tienes saldos pos depositos mas a mi favor, yo veria la
forma
> de armar la vista donde diga.
>
> Codigo_articulo,almacen,saldo
>
> luego esa columna saldo la podrias usar para lo que gustes!! la ventaja


de
> esto es que si alguien quiere saber el saldo de un articulo al dia de


hoy,
> con solo llamar la vista funcionaria y como esta indexada lo hara de


forma
> optima :-)
>
> Te aconsejo este modelo, yo asi tengo un sistema que dia tras dia se


meten
> mas de 5.000 transacciones y hay mas de 50.000 articulos, ni hablar de


los
> pedidos,etc.
>
> en principio tenia triggers, luego lo pase a este modelo y me ha sido
mucho
> mejor!!
>
> Suerte
>
>
> Salu2
>
> Maximiliano Damian Accotto
> Gerente de IT
> Fundicion San Cayetano S.A.
> Buenos Aires Argentina
> -
> maxi_accotto[arroba]speedy[.]com[.].ar
> MSN:
>
>
>
> "Jorge Morales" escribió en el mensaje
> news:
> > Hola Maxi
> >
> > Muchas gracias por contestar.
> >
> > La opcion 1 no me es viable porque primera se digita un pedido, pero


no
> > necesariamente se llega a facturar, o puede llegar a facturarse dias o
> hasta
> > meses despues de que se digito, aunque talvez una forma seria un


trigger
> de
> > modificacion sobre el campo de estado de la factura, voy a analizarlo
mas.
> >
> >
> > Lo de la vista indexada, nunca las he manejado, pero me parece que
alguien
> > dijo que solo la version Enterprise de SqlServer permitia crearle
indices
> a
> > las vistas (Si estoy equivocado por favor alguien que me aclare), y la
> > version que tengo es la estandar. El problema es que los saldos
realmente
> > los llevo por bodega (base con bodega, codigo, saldo, estante etc)


con
lo
> > que realmente la tabla donde tengo que ir a rebajar los saldos tiene
hasta
> > 200,000 registros en uno de mis clientes que tiene como 99 bodegas.
> >
> >
> > Voy a documentarme mas sobre las vistas, de primera entrada me cuesta
> > visualizarlo, pues utilizo el saldo para muchos calculos, promedios
> > ponderados etc, pero puede ser ignorancia de mi parte.
> >
> > Te gradezco mucho tus observaciones, y soy todo oidos a todas las


ideas
> que
> > se les ocurra.
> >
> > Saludos
> >
> > Jorge Morales
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida