Icono del sitio SNATIC.COM

SAP HANA: USO DE MEMORIA PARTE 3

SAP HANA suele tener información en memoria basado en tablas de columna que son cargadas columna a columna solo cuando están en uso, por tanto este comportamiento puede tener cargas lentas, cuando no existe más memoria o se llega a un punto crítico HANA automáticamente borra cache e información no importante por tal motivo es importante saber por tabla si está cargada y para ello utilizar este simple comando SQL para garantizar que este cargada:

load «SAP_HANA_DEMO».«sap.hana.democontent.epm.data::EPM.PO.Item»
all

Para después con el comando SQL revisar por tabla el consumo de memoria:

select TABLE_NAME as
«Table», round(MEMORY_SIZE_IN_TOTAL/1024/1024) as
«MB Used»
from M_CS_TABLES where

SCHEMA_NAME = ‘SAP_HANA_DEMO’
order
by
«MB Used»
desc

O bien entrar a mayor detalle como por ejemplo su nivel de compresión, memoria Delta, Total utilizado, etc, todo esto de las vistas M_CS_TABLES, M_CS_COLUMNS:

select COLUMN_NAME as
«Column»,

LOADED,

round(UNCOMPRESSED_SIZE/1024/1024) as
«Uncompressed MB»,

round(MEMORY_SIZE_IN_MAIN/1024/1024) as
«Main MB»,

round(MEMORY_SIZE_IN_DELTA/1024/1024) as
«Delta MB»,

round(MEMORY_SIZE_IN_TOTAL/1024/1024) as
«Total Used MB»,

round(COMPRESSION_RATIO_IN_PERCENTAGE/100, 2) as
«Compr. Ratio»

    from M_CS_COLUMNS where schema_name =‘SAP_HANA_DEMO’

    AND table_name = ‘sap.hana.democontent.epm.data::EPM.PO.Item’


Esto ya que estas tablas de Sistema tienen información relevante a todos los esquemas:

Otro de los modelos utilizados en HANA es el row store y la forma en como se puede obtener la memoria utilizada por estas tablas es la siguiente:

select
round(sum(USED_FIXED_PART_SIZE + USED_VARIABLE_PART_SIZE)/1024/1024) as
«Row Tables MB Used»

from M_RS_TABLES

Ahora por un esquema específico en este ejemplo SYS:

select SCHEMA_NAME, TABLE_NAME, round((USED_FIXED_PART_SIZE + USED_VARIABLE_PART_SIZE)/1024/1024, 2) as

«MB Used»
from M_RS_TABLES where SCHEMA_NAME = ‘SYS’
order
by
«MB Used»
desc, TABLE_NAME

Existen otras mediciones de memoria para los procesos que realizan consultas a HANA llamadas expensive statements las cuales pueden ser monitoreadas y limitadas pero para eso es requerido configurar el archivo global.ini con los siguientes parámetros:

[Resource_traking]

enable_tracking = on

memory_tracking = on

[memorymanager]

Statement_memory_limit = <GB>

Ahora para el tema del pool de memoria utilizado por SAP HANA es posible usar el siguiente SQL para monitorearlo:

select HOST, round(ALLOCATION_LIMIT/1024/1024/1024, 2) as
«Allocation Limit GB»

from
PUBLIC.M_HOST_RESOURCE_UTILIZATION

Relación de la memoria en SAP HANA y Linux:

Sobre HANA Studio se puede revisar todo el uso de memoria:

Además entrar a detalle sobre la siguiente opción utilizando el cockpit de HANA:

Salir de la versión móvil