Lentitud al Cargar y Refrescar Rejilla


([N3] blanyi) #1

Buenos días.
Tengo una tabla de clientes en la que entre otros datos guardo: PRIMER APELLIDO, SEGUNDO APELLIDO, PRIMER NOMBRE, SEGUNDO NOMBRE.

Adicionalmente tengo un campo furmula llamado NOMBRE_COMPLETO compuesto por:

#PRIMER_NOMBRE+choose(isEmpty(#SEGUNDO_NOMBRE)=1,"", " “+trimmedString(#SEGUNDO_NOMBRE) )+ " " + #PRIMER_APELLIDO+choose(isEmpty(#SEGUNDO_APELLIDO)=1,”" , " " + trimmedString(#SEGUNDO_APELLIDO))

También tengo un indice NAME en modo formula compuesto por la misma formula de arriba con la que se compone el nombre. Esto para las búsquedas.

En otra tabla tengo un campo enlazado a clientes y de eta segunda tabla tengo una rejilla para presentar los datos.
En la rejilla presento el campo NOMBRE_COMPLETO.

Localmente y en los clientes conectados por cable la rejilla carga la mayoría de las veces rápido, pero hay ocasiones en que es un poco lenta.

Desde mi portátil que se conecta a la red por la inalambrica el cargue de esta rejilla es lentísimo (casi siempre sale el aviso de “no responde”, pero al final y después de mucho tiempo termina cargandola).

Lo que he notado es que la demora es mientra presenta los nombres, todos los demás datos cargan pero los nombres van apareciendo lentamente uno por uno.

Todo esto lo tengo armado así porque nos interesa tener grabado el nombre así por apellidos y nombres, pero armamos el nombre completo para faciltar la búsqueda del mismo.

Que puedo hacer para mejorar el tiempo de respuesta de cargue de la rejilla, más que es muy seguro que pronto se haga una conexión remota.

Gracias a quien pueda ayudarme.

YIMY MORA ACONCHA


([N1] comercial) #2

Hola, si te he entendido bien, creo que tienes un error de concepto, veamos, si ya tienes un campo para el nombre completo, no debe de ser formula, debe de ser alfabético, y en su formula inicial pones la formula que ya tienes, de esa manera el campo es estático, tiene siempre los datos, luego el indice no es formula es normal clave duplicada, del campo nombre completo, creo que esto es correcto, a no ser que te halla entendido mal. Espero no meter la pata. :slight_smile:

Saludos.
Miguel.


([N1] comercial) #3

Perdón quise decir ‘hayas entendido’.

PD:Tampoco me deja editar mis propios post. j…


([N1] ViperNET) #4

Hola

El problema que veo es que estás usando mal las fórmulas, como dice Miguel: “si ya tienes un campo para el nombre completo, no debe de ser formula, debe de ser alfabético, y en su formula inicial pones la formula”. Esto porque cada ves que se lee la ficha, se calcula la fórmula y claro, en una sola ficha no hay problema, pero en las rejillas que son “n” fichas, significa que si tienes 100 fichas se van a calcular 100 veces la fórmula ¿y si tienes 1000000?, esto obviamente te ralentiza la visualización de datos. Lo más lógico es usar esta fórmula como contenido inicial del campo de tal manera que la momento que creas la ficha se calcula y se almacena en disco el nombre completo.

Ahora, lo segundo es ver como estás cargando la lista, aunque más creo que el problema es lo anterior.

Espero haber podido ayudar.

Victor


([N1] Pepeto) #5

Ademas de lo indicado anteriormente por @ComercialArhes2000 y @ViperNet
Las formulas no puedes usarlas en los indices.
Pero lo que si puedes hacer es crear indices con varios componentes y poner el #NOMBRE y @APELLIDOS en el mismo indice.

Un saludo
José Luis
http://www.ascsl.com


([N3] blanyi) #6

Hola, nuevamente yo por aquí con este tema.
Hice los cambios que sugirieron y mejoro un poco el rendimiento pero aun sigue siendo lento porque tengo otros campos que son de tipo formula que presento en la rejilla.
Ante esto quiero que por favor me ayuden a aclarar conceptos. Decidí usar campos formulas en algunos casos porque me pareció que me ayudaban a ahorrar espacio, pues al ser de este tipo no ocupan espacio en mi base de datos, teniendo en cuenta que la licencia que le monte a mi cliente es express (es una microempresa de 3 empleados apenas). Adicional al espacio lo otro que consideré es que si usaba campos calculados (o tipo formula) es resultado es automático, si cambio el valor de los campos involucrados en la formula es resultado se refleja ahí mismo.

Con el campo nombre no tengo ningún problema, lo cambie y le puse como contenido inicial la formula y funciona perfecto. El inconveniente esta en que tengo un campo SALDO que es igual al VALOR_PRESTADO-TOTAL_PAGADO, como haría en este caso. ¿Funcionaría bien el colocarle la fórmula en el valor inicial?.

Y mi mayor temor, son como 7 campos tipo formula que tengo (en cada tabla, son 4 tablas), crecería demasiado la tabla al cambiar de tipo estos campos?

Gracias.
YIMY MORA ACONCHA


([N1] Synetic) #7

Bueno, no es difícil saberlo. Para calcularlo puedes cambiar los campos tipo formula por campos numéricos y en las propiedades de la tabla ves en la propiedad “Longitud del registro” lo que ocupa un registro en bytes. Multiplícalo por los registros de tu tabla y tendrás el espacio que ocuparía.
La licencia express no computa el espacio que ocupan los índices, así que tendrás un valor aproximado de la cantidad de registros que puedes llegar a tener.

Saludos
Fernando.


([N2] AyudaVelneo) #8

Hola blanyi:
Por norma no es recomendable usar campos fórmula ni campos singular de plurar en la rejillas. Cada vez que se “pinten” los datos el sistema tiene que hacer una llamada al servidor para ver si los datos siguen siendo los mismos o no y volver a calcular las fórmulas.
Si tienes 4 registros no pasa nada… pero si tienes 400 ya es un problema (no te digo nada si empieza a crecer el número de registros)
Un saludo
http://ayudavelneo.com


([N1] Pepeto) #9
  1. Con las capacidades de los discos actuales, arañar unos bytes para ahorrar espacio sacrificando el rendimiento, me parece un tremendo error.
  2. La licencia Express esta preparada para que los clientes puedan probarla antes de decidir su compra, no para ponerla en produccion. Luego nos quejamos cuando Velneo toma decisiones en las que pagan justos por pecadores, pero hay que entender que este tipo de practicas, al final nos pasan factura a todos.
  3. Y todo esto nos lleva a que, el cliente final, cree que la herramienta no es productiva, porque hacemos malos usos de la programación, y culpando el nombre de “Velneo” para salir del paso, porque no somos lo suficientemente autocriticos y decimos que la culpa es “nuestra”, por no saber o lo que es pero, no querer hacer un buen trabajo.

Pero esta es solo mi opinión personal, no la tengais en cuenta, y sobre todo, que nadie se sienta ofendido.

Seamos serios, y luego no maldigamos a Velneo por cosas como esta.

un saludo
José Luis
http://www.ascsl.com


([N2] bannu) #10

No estoy de acuerdo contigo Pepeto, las licencias exprés se pueden utilizar para lo que uno quiera, el límite solo está en la base de datos que es de 256 MB, lo del código mal programado es independiente del tipo de servidor que tu implementes, exprés o el habitual de 100 euros por puesto, o en clound, si el programa está mal, estará mal en todas las plataformas.

Creo que deberías echarle un vistazo al siguiente enlace, en la sección FAQ, 3º pregunta:

http://velneo.es/info/velneo-v7/informacion-comercial/tarifas/tarifa-de-despliegue/licencia-velneo-vserver-v7-express/


([N4] mperez) #11
  • Correcto, la Express se puede utilizar para lo que el desarrollador estime conveniente.

  • La limitación de la Espress, no es en la Base de Datos. Esto es importante : Es solo en los Datos, los indices no entran en esa limitación. Esto es importante porque en cualquier sistema los índices pueden quintuplicar el tamaño de los Datos, con lo que esa limitación de 256 Mb al ser solo en datos es mucho menor de lo que parece a primera vista.


([N1] Pepeto) #12

Pues nada, si me he equivocado, pido disculpas :slight_smile:
En cualquier caso, sigo pensando que bajo ningun concepto debemos penalizar el rendimiento por ahorrar unos bytes. Pero cada uno que haga lo que estime oportuno.

un saludo
José Luis
http://www.ascsl.com


([N3] asesoria) #13

Que el uso de la licencia express sea para lo que el desarrollador considere no impide un uso inadecuado tanto de la licencia como del desarrollo de la aplicación. Coincido con Pepeto, no se puede sacrificar rendimiento, máxime cuando las licencias standar tienen un coste competitivo. Es mi opinión


([N4] mperez) #14

Claro Jose Luis, estas en lo cierto respecto a que no son buenas prácticas , no tienes por que disculparte de nada.
Solo quería dejar claro todos los puntos sobre la Express, ya que en los nuevos genera confusión


([N3] blanyi) #15

Buenos días.

Para Pepeto.
Para los que estamos en América Latina, el asunto no es querrer “arañar” unos cuantos bytes porque si, el asunto es que son microempresas, muy pequeñas con bajos recursos, gente que al no tener un empleo buscan la forma de salir adelante queriendo hacer empresa, pero eso cuesta bastante. Aquí en Colombia el que quiere hacer empresa tiene que pensar que tiene que producir un 35% para dárselo al gobierno en impuesto, antes que nada, después de eso es que va a ver que genera para él. Entonces la gente no quiere pagar una licencia por una base de datos de Velneo, que para nosotros es costosa, cuando hay un Mysql o Postgres por los que no tienen que pagar nada.
Entonces yo como programador si quiero que el cliente me contrate a mí tengo que buscar la forma de ganármelo y ofrecerle algo parecido a lo que le ofrece la competencia y en este caso es la licencia Express y como tiene limitante de espacio lo que se pueda ahorrar en ese aspecto es ganancia.

Tengase en cuenta además que nuestro mercado potencial son profesionales independientes o empresas muy pequeñas (lo que conocemos como PYMES) con pocos recursos para invertir, sobre todo en tecnología.

Tal vez para ustedes que están en Europa el asunto es mucho más fácil, pues posen mayor poder adquisitivo.

¿Entonces yo pregunto, entonces para que existen los campos formulas?

Si tengo que presentar el dato X que es igual a la multiplicacion de AxB (X=A*B), desde mi punto de vista aplica un campo tipo formula.

Pero resulta que cuando lo requiero va a hacer que sea muy lento el proceso o la vista donde lo necesito, para que lo incluyen como alternativa?

Por favor me puedes explicar.

Cordial Saludo.

YIMY MORA ACONCHA


([N1] Pepeto) #16

Los campos fórmula estan, porque son necesarios, y pueden ser de utilidad en ocasiones determinadas, preferiblemente cuanto se trabaja con pocos registros.

Los filtros tambien estan, y esta documentado que su rendiemiento no es bueno, y no es aconsejable su uso. Pero ello no impide, que en determinados casos, muy concretos, podamos usarlos porque nos facilitan la tarea. Pero sin abusar de ellos y sabiendo siempre las consecuencias.

Sin entrar en otros temas que no son puramente técnicos, lo que quiero decir, es que si abusamos de “filtros”, “fórmulas” y otras técnicas poco recomendables, … luego no debemos quejarnos de que el resultado no es el deseado.

un saludo
José Luis
http://www.ascsl.com