Controla el gestor de caché

Traducido automáticamente de Deepl

4D v16 ha introducido un nuevo gestor de caché totalmente optimizado para la línea de productos de 64 bits. 4D v16 R2 está dando poder a nuestros desarrolladores avanzados de 4D para que tomen el control por sí mismos.

El algoritmo interno del gestor de caché se basa en un concepto de prioridad asociado a cada tipo de objeto a almacenar en la memoria caché. Por defecto, el algoritmo del gestor de caché asigna un valor de prioridad más alto para un índice que para los registros. Y los objetos utilizados recientemente (registros o índices) tienen una mayor prioridad para permanecer en la caché que los objetos que no han sido utilizados en los últimos dos días, etc.

Desde 4D v16 R2, el desarrollador 4D puede tomar el control. Al inicio, puede afinar las prioridades en la caché para sus tablas, índices y «objetos grandes » en función de las necesidades de su aplicación. Además, puede incluso definir excepciones para un solo proceso. Cuando hay que ejecutar algunas operaciones específicas, como por ejemplo una gran importación, el desarrollador 4D es el mejor para decidir qué tabla o índice debe tener la mayor prioridad en la caché durante un tiempo determinado.

Nuevos comandos para controlar la prioridad

Un conjunto de nuevos comandos permite realizar ajustes muy finos: para cada índice, cada tabla, incluso con diferencias para el registro principal y las «partes grandes» ( blobs / texto / imágenes / objetos).

Definir al inicio la prioridad de todos los procesos

SET TABLE CACHE PRIORITY
SET INDEX CACHE PRIORITY
SET BLOBS CACHE PRIORITY

Aumentar o disminuir la prioridad definida al inicio para el proceso actual

ADJUST TABLE CACHE PRIORITY
ADJUST INDEX CACHE PRIORITY
ADJUST BLOBS CACHE PRIORITY

Leer el valor de la prioridad interna (sólo para fines de depuración)

Get adjusted table cache priority
Get adjusted index cache priority
Get adjusted blobs cache priority

beware Estos comandos deben utilizarse con cuidado, ya que pueden afectar al rendimiento de la base de datos.

Ejemplos

En el método On Startup método de la base de datos, quiere establecer una alta prioridad para los [Customer]LastName índices de campo:
SET INDEX CACHE PRIORITY([Cliente]Apellido;prioridad de caché muy alta)

Quiere cambiar temporalmente la prioridad de la caché para los campos de texto [Docs] table almacenados en el archivo de datos cuando se ejecuta una búsqueda secuencial:
ADJUST BLOBS CACHE PRIORITY([Docs]; Prioridad de cachémuy alta)
QUERY ([Docs];[Docs]Autor#"A@") // búsqueda secuencial en un campo no indexado
// ejecutar otras consultas u órdenes en la misma tabla
// al terminar, volver a establecer la prioridad de caché normal
ADJUST BLOBS CACHE PRIORITY ([Docs];Prioridad de caché normal)

Para más detalles, le invitamos a echar un vistazo al siguiente artículo de la documentación de 4D v16 R2.