Ver Mensaje Individual
  #7 (permalink)  
Antiguo 31/01/2008, 14:50
angelin22
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Grave Problema - Tema Para Expertos -

Buen ejemplo Matanga....

Hoy hemos seguido con las pruebas, y hemos llegado a la conclusion de que es imposible obtener los mismos resultados...

Os pondre el ejemplo mucho más concreto:


EL tema trata del calculo de neceisidades de ciertos articulos, ambos sistemas calculan las necesidades de articulos para un proveedor, para ello pensemos que se obtienen los siguientes articulos, con sus cantidades y precios para este caso que representan las necesidades:

Número de Artículo Cantidad a necesitar Precio
1 11 10
2 6 3
3 1 2
4 1 3
5 1 2
6 1 4
7 1 3

En este ejemplo que representa un posible escenario aunque con datos ficticios, el programa en visual basic ejecuta una selección de los datos, ordenados en primer lugar por la Cantidad necesaria de forma descendente . Sobre la tabla de ejemplo Access realiza la ordenacion en primer lugar por el articulo 1, posteriormente por el articulo 2, ya que tienen cantidades en posicion descendente, pero cuando se encuentra cantidades iguales , realiza una ordenacion en nuestros test, por momento inverso en el que ha entrado en el sistema. Es decir algo como esto.

Número de Artículo Cantidad a necesitar Precio
1 11 10
2 6 3
7 1 3
6 1 4
5 1 2
4 1 3
3 1 2


A partir de aqui el sistema iria sumando articulos hasta sobrepasar una cantidad digamos en dinero, pongamos que se sobrepasa para este caso con los articulos, 7 y 6.


Oracle en cambio después de ordenar por los campos indicados, realiza una optimizacion interna de sus datos y ofrece un resultado totalmente distinto. Algo como esto.

Número de Artículo Cantidad a necesitar Precio
1 11 10
2 6 3
5 1 2
7 1 3
6 1 4
4 1 3
3 1 2


Lo que para este caso posiblemente cubra la cantiadad con los valores 5, y 7


Aparentemente aparece una solución rápida y sencilla de solucionarlo, basada en que se programe en el nuevo sistema Java una “ordenacion Access simulada” y que sea en el momento en que ya conciden todas las cantidades se fuerce una ordenacion por momento en el que se entra en el sistema.

Esto pierde todo el sentido al tratar hacerlo en el sistema real, puesto que entra en juego Compactaciones diarias de las bases de datos access para que el antiguo sistema mantenga un rendimiento coherente. Esto produce que todos los registros son recolocados diariamente, reproduciendo ordenaciones totalmente dispares. Con la consiguiente imposibilidad de replicar este funcionamiento desde el sistema nuevo.

Como veis la cosa tiene tela, y nos esta dejando KO!...


Gracias por las aportaciones, se aceptan sugerencias! :)

Por cierto imposible modificar nada del antiguo sistema! :(