Deberias revisar que indices tiene la tabla saldos_d, es posible que al borrar registros, el motor deba hacer un recorrido natural de la tabla, es decir, recorrer la tabla de comienzo a fin.
El indice podria ser por los campos y en este orden {idcuenta, sdyea, sdmes} por asuntos de selectividad.
Si la tabla tiene muchos registros y estas lanzado la operacion varias veces (for select ...) sera perceptible la demora.
Otra cosa, he observado que cuando se hacen borrados masivos de registros o muchas modificaciones a registros y debido a al tecnologia de multiversiones de registros que maneja Firebird e Interbase, la base de datos se va degradando en rendimiento lo que obliga a hacer backup/restore frecuentes.
Espero te sea de utilidad.
__________________
Luis Fernando Buelvas T.
|