Ver Mensaje Individual
  #8  
Antiguo 24-02-2004
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Reputación: 24
mlara Va por buen camino
Con respecto a lo que dice jachguate debo decir que el valor de expr es muy parecido a los valores reales con que trabaja la aplicación. Incluso en ocasiones las cadenas son mucho más largas y con más paréntesis y signos aritméticos (+, -, *, /). Por otro lado, fui yo quien construyó la UDF y la he probado como una aplicación de consola y también la he compilado en C++ Builder. Funciona bien. Pero bueno... retomando el tema...

...ya he he realizado pruebas sin hacer ningún llamado a la UDF. El resultado es el mismo. y entonces...? Lo que dice guillotmarc me parece muy acertado. De acuerdo a esto revisaré la implementación de la base de datos, y veré si efectivamente me hace falta algún índice. Debo comentar que el índice de los campos "Code", "Degree", y "Year" al que se hacía referencia más arriba sí existe:


Código:
CONSTRAINT "PayFunctDeg_PK_Year_Code_Degree" PRIMARY KEY ("Year", "Code", "Degree")
Pero claro, no es la única tabla que se consulta (recordar que ese procedimiento era sólo una muestra), así que voy a revisar las demás e informo de lo sucedido.

Finalmente, quisiera definitivamente encontrar una función que me permitiera liberar la memoria, pues aunque probé abriendo otra conexión con otro componente TIBDatabase tampoco funcionó. La única forma de liberar la memoria de Uso de PF y aumentar la memoria física disponible es cerrando TODAS las conexiones a la base de datos, es decir que si cierro todas las conexiones hechas desde la aplicación, pero por ejemplo IBConsole está conectado a la base de datos (no sólo al servidor sino también a la base de datos), la memoria no se libera, lo que me hace suponer que si tengo varios clientes conectados a la base de datos, y uno de ellos inicia el proceso de liquidación de nómina, no se podrá liberar la memoria a no ser de que todos los clientes se desconecten (me falta probarlo). Esto sí que es un problema, no creen?

Entonces sólo me queda por el momento revisar los índices de todas las tablas consultadas, y luego... pues ojalá encuentre la manera de liberar la memoria.

A pesar de no haber solucionado mi problema, hasta el momento sus aportes han sido muy valiosos. Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita