Supongo que sabes lo que es la memoria caché.

La memoria caché usada por el Firebird puede ser grabada en el disco duro por instrucciones del propio Firebird o cuando quiere el Sistema Operativo.

Esa grabación en el disco duro toma su tiempo, no es instantánea y a veces tu intención es que las operaciones con la Base de Datos sean lo más rápidas posibles. Aquí te mostraré lo que debes hacer para que la grabación en el disco duro ocurra muy raras veces, lograrás así mayor velocidad en todas las operaciones.

CUIDADO:

Esta es una técnica muy riesgosa, antes de emplearla debes verificar que tienes una UPS (unidad de energía no interrumpida) de buena capacidad y funcionando correctamente. De no ser así un corte de la energía eléctrica hará que se pierdan todos los datos que estaban en la memoria caché, que pueden ser muchísimos.

Como evitar que Firebird vacíe el caché en el disco duro

Forced writes = OFF

Puedes establecer Forced writes en OFF con el programa GFIX, tal como se muestra a continuación:

GFIX -user SYSDBA -password masterkey MiBaseDatos -write async

MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1

Estos valores los debes establecer en el archivo FIREBIRD.CONF, el cual se encuentra en la misma carpeta donde instalaste el Firebird (por ejemplo en: C:\Archivos de Programa\Firebird\Firebird_2_5\)

Con estos ajustes el Firebird jamás vaciará el caché en el disco duro, eso hará que las operaciones con la Base de Datos sean más rápidas pero también incrementará muchísimo el riesgo de problemas si llega a ocurrir un corte de la energía eléctrica.

Por lo tanto, no es recomendable que lo hagas salvo en casos muy puntuales y por muy poco tiempo, no te acostumbres a dejar de vaciar el caché porque la Ley de Murphy está siempre vigente (“si algo malo puede pasar, pasará, y en el peor momento posible”).

Un caso en que dejar de vaciar el caché te podría ayudar mucho es cuando tienes que introducir muchísimas filas en tus tablas “a bulto”, por ejemplo, tienes los datos en miles de filas de una planilla Excel y los quieres enviar al Firebird. Pero apenas termines de migrar esos datos ya deberías poner Forced writes en ON y MaxUnflushedWrites y MaxUnflushedWriteTime con los valores que tenían anteriormente.

Artículo relacionado:

El índice del blog Firebird21

 

Anuncios