Cuando SAP HANA arranca, la información puede ser cargada en memoria para mejorar el tiempo de respuesta en las consultas de los primeros usuarios.
Las principales opciones para llevar a cabo este propósito son:
• Preload.
La información albergada en tablas de tipo columna son cargadas en memoria durante el proceso de arranque, estando la instancia disponible por tanto a la finalización de la carga. Evidentemente esta carga elevará el tiempo de inicio de SAP HANA.
• Reload.
En esta ocasión, la información albergada en las tablas columnares se carga de forma asíncrona después del proceso de inicio de SAP HANA. El punto a favor es que la instancia de SAP HANA estará disponible de inmediato, tendemos un inicio más rápido pero los primeros usuarios sufrirán con el tiempo de respuesta.
En la entrada de hoy, veremos cómo proceder para obtener un listado de las tablas precargadas en memoria.
Para empezar, nos conectaremos a nuestra SAP HANA con el usuario adm de la BBDD.
Luego ejecutaremos el comando: ps –ef | grep index
Ahora que tenemos el PID del proceso de hdbindexserver, nos conectaremos a dicho proceso con el comando: hdbcons –p <process id>
Con el comando help, podemos todas las opciones del comando hdbcons.
Como comentábamos anteriormente, en esta entrada nos centraremos en la carga durante el arranque, por lo que usaremos el comando: tablepreload
Si de nuevo queremos más información sobre el comando, basta con escribir: help tablepreload
Continuando con el propósito de nuestra entrada, en primer lugar verificaremos la temporalidad de la información que mostrará el comando.
Esto es importante, ya que la información mostrada por la salida del mismo es de una “captura” tomada cada 86400 segundos, o lo que es lo mismo 24 horas.
Si quisiéramos trabajar con un conjunto de datos más actual, podemos forzar a listar las tablas precargadas en memoria con el comando: tablepreload writeinfo –s
Para ver la info acerca de cuándo se ejecutó esta “captura” de datos: tablepreload info
Para obtener el número de las tablas cargadas en memoria: tablepreload vfcontents
En nuestro ejemplo, 31108 tablas están cargadas en memoria actualmente.
El modificador –f en el comando, es decir, tablepreload vfcontents –f nos dará un listado del nombre de las tablas.