sep 30

Mejorar el rendimiento en ejecución

Posted in analisis, foro, ideas, utilidades

Estas ultimas semanas ha habido mucho ambiente con algunos temas del foro, y pese a que me gustaria haber participado mas, no he podido. Ya sabeis, ¡me he pasado mucho tiempo en la cocina!, :)

Y al margen de suplicas y quejas, el trasfondo de todo, es que muchas veces hacemos las cosas mal, y la primera reaccion es intentar culpar a los demas.

Como no he tenido fisicamente tiempo, no he podido realizar pruebas de rendimiento para concretar esta informacion con mas detalle, pero si hay conceptos que deberiamos tener muy claros para mejorar la respuesta de las aplicaciones.

Pero, igual que antes he tratado de defender a Velneo que no tiene la culpa de nuestros errores como programadores, tambien voy a decir que si tiene la culpa de no publicar un articulo donde se haga hincapie en estos aspectos, y se deje claro que opciones son las mas recomendables, en segun que situaciones.

Y es que, cuando nosotros trabajamos bien, y realizamos desarrollos ejemplares, los clientes estan contentos y hablan bien de Velneo y tambien de nosotros, pero cuando no es asi, el cliente termina cansado, descontento y la culpa, no suele ir al programador, porque el programador trata de liberarse del problema culpando a la herramienta.

Sea por una razon o por otra, lo que si esta claro, es que deberiamos tener una serie de Test comparativos de respuesta en distintas situaciones:

Tenemos o deberiamos tener claro que:

  1. un proceso en 1 plano (ejecutado en la maquina del cliente), es mas lento que un proceso en 3 plano (ejecutado en el servidor). Pero hay veces que no podemos ejecutar el proceso en 3 plano, p.e. cuando tenemos que mostrar mensajes en el interfaz del cliente, o en el proceso debe interactuar el usuario de alguna forma.
  2. una busqueda en 1 plano (en el cliente), es mas lenta que si ejecutamos la misma busqueda en 3 plano (en el servidor).
  3. una lupa es mucho mas lenta siempre que Cargar lista y que una Busqueda por un indice, pero si no tenemos mas remedio, al menos, deberiamos ejecutar la lupa en 3 plano (tutor de busquedas y lupas en 3 plano).
  4. mostrar una rejilla de una tabla siempre es mas rapido si no aparecen campos Formula en el contenido de las columnas, es mucho mejor mostrar campos numericos o alfabeticos con contenido inicial.
  5. mostrar campos en una rejilla usando “punteros singular de plural por indice“, penaliza el rendimiento con grandes cantidades de registros (incluido el dia 15-dic-2010)
  6. un campo numerico con una formula en su contenido inicial es mucho mas eficiente que un campo formula, sobre todo si este debe aparecer en rejillas o informes con calculos masivos.

Pero hay otros conceptos que no quedan tan claros, ¿que es mas rapido?, o ¿como afecta al servidor? en las siguientes comparaciones:

  1. Un proceso con Cargar lista, o un proceso que lanza una Busqueda, si tenemos en cuenta que en ambos casos se utilizaria el mismo indice o grupo de indices, sabiendo que los 2 se ejecutarian en el mismo plano. Que diferencias habria si ejecutasemos en 1 plano y que diferencias habria si ejecutasemos en 3 plano, p.e.
  2. Del mismo modo, y bajo el mismo plano de ejecucion, cuando las circunstancias lo permitan, que se debe usar, el Tubo “de Lista” o “de Ficha“.
  3. En una rejilla, el rendimiento de Suma acumulada de toda la columna, deberia ser igual que usar la suma acumulada de un campo, si indicamos como campo esa misma columna y no indicamos condiciones. Pero, ¿es asi?
  4. Cuanto tiempo puede permanecer en ejecucion un proceso en el servidor antes de que sea interrumpido y las transacciones deshechas.
  5. Si tenemos que hacer un proceso de carga masiva de datos, creando registros nuevos, que es mas rapido, el Tubo de ficha o Crear nueva ficha en memoria + Alta de ficha

Seguro que algo se queda en el tintero pero si sois tan amables, ire actualizando el “post” a medida que se aporten nuevas cuestiones.

Visto esto, no se trata de comparar rendimientos de Velneo V7 con otras herramientas, ¡NO!, no nos interesa saber que V7 es mejor o peor que SQL server o que Oracle.

Lo que realmente nos interesa es como aprovechar el rendimiento del servidor al maximo, eso ¡SI!

¡¡¡ queremos programar bien, y optener el mejor rendimiento de la base de datos !!! y para ello necesitamos conocer esos pequeños detalles que marcan la diferencia entre un “funcionamiento correcto” y un “funcionamiento optimo

PDF Printer    Enviar artculo en formato PDF   
comments: Closed

4 Responses to “Mejorar el rendimiento en ejecución”

  1. Francisco Hoyos dice:

    plas plas plas plas plas

  2. admin dice:

    Si son aplausos, gracias, D. Francisco Hoyos, pero no los merezco

    Si no lo son, me dices ¿que?, please :)

  3. nacho dice:

    Y yo pensando en cambiar de Pc por pensar que ya era viejo. Y soy yo el culpable sin saberlo seguro. Gracias por salvarle la vida (circuitos) a mi Pc.

  4. admin dice:

    Gracias a ti por visitarme



Pings responses to this post