Optimizar búsqueda en cloud para calcular acumulados


([N3] politos) #1

Optimizar búsquedas en Cloud!

Hola a todos, quisiera pedirles su opinión sobre como optimizar el resultado de una búsqueda y sus acumulados, de una aplicación en Cloud.

La aplicación se encarga de gestionar Reservas (Maestro), las cuales tienen diferentes estados (confirmada, pendiente, etc) y también una fecha de salida. Además cada reserva tiene lineas (Plurales) con diferentes servicios, entre los cuales hay forfaits de diferentes tipos.

En la pantalla principal cuento con un escritorio (img adjunta) donde se muestra en un intervalo de fechas seleccionado por el usuario (1), las diferentes reservas (2) y también un resumen de acumulados, uno para los estados de las reservas (3) y otro de acumulados de los diferentes tipos de forfaits (4).

[attachment=22992,1774]

Actualmente lo he resuelto con una búsqueda en 3er plano para mostrar las reservas que cumplen con el intervalo de fechas y sus filtros, en local funciona como un avión, el problema de rendimiento lo encuentro en cloud a la hora de calcular los acumulados (3 y 4). Para ello he probado de dos maneras:

Ambas son un a vista de datos alimentadas por:
a) Objeto 1: Un proceso que ejecuta una búsqueda sobre las reservas (entre fechas) y luego contando. Objeto 2:la rejilla
b) Encadenando procesos, objeto 1: el proceso de la búsqueda de reservas, objeto 2: el proceso que toma el resultado y cuenta, objeto 3 la rejilla.

Aunque esto funciona, estoy realizando 3 búsquedas que son idénticas, para luego contar acumulados. Quisiera saber cual sería la manera de ejecutar una sola búsqueda (entre fechas con filtros) para la rejilla (2) y que el resultado de esos registros me sirva para calcular los acumulados de las dos oras rejillas (3 y 4).

Espero sus opiniones!

Saludos!

Pablo


([N1] wikan) #2

Podrías guardar la búsqueda en una cesta y luego solo procesar dicha cesta para calcular los acumulados.
De esa manera solo realizas la búsqueda una vez

PD
Me gusta bastante la interfaz. Bastante limpia


([N3] politos) #3

Gracias por tu consejo Manuel!...lo probaré a ver que tal! y me alegra que te guste la interfaz!
Si necesitas algún elemento de los que salen te lo puedo enviar!

Saludos!


([N1] Pepeto) #4

La mejor forma para lo que comentas, son las actualizaciones, siempre que sea posible.

Aqui tienes información:
http://www.ascsl.com/2010/01/las-tablas-de-datos-vi/

Aqui tienes un ejemplo de como aplicar las actualizaciones:
http://www.ascsl.com/2011/01/calculo-de-stocks-ii/

un saludo
Jose Luis
http://www.ascsl.com


([N3] politos) #5

Pepeto!, cómo siempre te agradezco muchísimo tus consejos! me miro los links y una vez que lo tenga terminado sea con actualizaciones o bien con cesta publico resultados por si le sirve esta info a otros!..

Gracias x tdo!

Pablo


([N1] wikan) #6

Lo que yo veo es que las rejillas que muestras debajo las calculas en base a la búsqueda. Por lo que montarte un acumulado...entre fechas...igualmente tendrías que agrupar después.

Si las lanzas la búsqueda y luego la recorres montando en tablas en memoria o en cestas los acumulados, no se que rendimiento tendrías. De todas formas, solo estarías haciendo una petición la base de datos y ya luego trabajando en local

[EDITO]
Con actualizaciones tendrías que hacer 3 búsquedas


([N1] comercial) #7

Hola, me gustaría que valoraseis esta idea, (el problema es que los acumulados son dinámicos, o sea que el usuario elije los márgenes cada vez), creamos tablas en memoria para el detalle y para los acumulados, configuramos las actualizaciones desde detalle a acumulaos, entonces mediante tubo, pasamos los registros seleccionados por el usuario a las tablas de detalle en memoria, lo que lanzará las actualizaciones sobre las tablas de acumulados, (todo esto en memoria), y luego enseñamos estas tablas, es una idea que probé en la V6 y me iba fantastica, pero en V7 todavía no lo he probado, ya va siendo hora. :-)

Saludos.
Miguel.


([N3] politos) #8

Gracias a todos ;)!,,,,este finde probaré las diferentes opciones a ver cual va mejor, actualmente las rejillas inferiores (4 y 3) están en tablas en memoria alimentadas por la búsqueda, quizas la idea de los resultados de la búsqueda pasarlos a una cesta me convence debido a que en otros apartados (por ej. acumulados por régimen o servicio entre fechas) podría aprovechar los procesos, al fin y al cabo es un simple acumulado por un campo en concreto, da igual que sean estados o régimen o servicios.

Saludos!