Télefono:
91 626 61 20
Dirección:
C/ Copenhague 6. Edificio Al Andalus. Planta 2ª. Oficina 5. 28232. Las Rozas. Madrid
Las lecturas anticipadas son un mecanismo por el cual se leen de forma anticipada datos que se espera vayan a ser utilizados a posteriori. Esto puede mejorar el rendimiento en casos en los cuales se realizan lecturas secuenciales ya que no hay que esperar por los datos al haberse leído anticipadamente. Por contra, puede llegar a ser un mecanimos por el cual se cargue mucho el gestor al realizar muchas lecturas anticipadas que pueden no llegar a ser utilizadas o que obliguen a rotar mucho el bufferpoool.
IBM Informix permite ajustar el valor de forma automática y cambiar el comportamiento de forma dinámica por medio de parámetro AUTO_READAHEAD. Éste puede tomar diferentes valores:
0: Desactiva las lecturas anticipadas
1: Activa las lecturas anticipadas en modo estándar. De esta forma se realizan lecturas anticipadas únicamente cuando una consulta espera por la I/O
2: Activa las lecturas anticipadas en modo agresivo. De esta forma se realizan lecturas anticipadas en cuanto empieza la consulta y durante la duración de la misma
Adicionalmente podemos indicarle de cuánto queremos se se haga la lectura anticipada especificando un número de páginas a continuación del valor que hayamos puesto de AUTO_READAHEAD. Por ejemplo, podríamos definir el valor como AUTO_READAHEAD=1,512 lo que activaría las lecturas anticipadas en modo estándar y leería 512 páginas cada vez. Si no indicamos el número de páginas a leer se leen por defecto 128. El mínimo que podemos indicar son 4 y el máximo 4096.
Además de definirlo a nivel global es posible definir el valor de AUTO_READAHEAD de forma individual para una sesión por medio de la sentencia SQL SET ENVIRONMENT. Este valor tendrá prioridad sobre el general del gestor.
Podemos ajustar de forma dinámica el valor de AUTO_READAHEAD por medio de onmode -wm y onmode -wf, además de tenerlo definido en el fichero onconfig para que se active con el reinicio del gestor.