Debo decir que ha sido provechoso pero aún nos encontramos un poco lejos de poder liberar la memoria. Creé unos índices que hacían falta y este es el resultado:
Sin índices:
Diferencia entre valor de Uso de PF inicial y final: 235 MB
La memoria física disponible baja hasta: 5 MB
Tiempo de ejecución: 00:04:25
Con índices:
Diferencia entre valor de Uso de PF inicial y final: 215 MB
La memoria física disponible baja hasta: 5 MB
Tiempo de ejecución: 00:02:50
Como se puede ver lo más notorio es la disminución del tiempo de ejecución. Esto quiere decir que efectivamente por ese lado había problemas, pero el uso de PF baja sólo 20 MB. Y cuando termina el proceso de nuevo, todos los clientes deben estar desconectados para que el Uso de PF vuelva a su valor inicial, y para que la memoria física disponible suba hasta los 150 MB promedio (no había comentado que las pruebas las hago en un equipo con 256 MB de RAM).
Bueno, y por otro lado, consultando he encontrado que el componente TDatabaseInfo da alguna información acerca del uso de la memoria. Los parámetros que he monitoreado antes y después del proceso son:
Parámetro·········Valor antes···Valor después
---------·········-----------···-------------
CurrentMemory·······4.886.528·······6.078.464
MaxMemory···········5.028.960······31.273.632
NumBuffers··············1.013···········1.013
La interpretación la dejo pendiente. Por ahora... como dije, espero encontrar la solución.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
|