Optimización del rendimiento de SAP HANA

Optimizar el rendimiento de SAP HANA es una tarea critica para cualquier administrador BASIS. Esta guia cubre las herramientas, transacciones y queries SQL que necesitas para monitorizar y mejorar el rendimiento de tu sistema HANA.


Índice

Transacciones para monitorizar SAP HANA

TransaccionDescripcion
DBACOCKPITDBA Cockpit - panel principal de administracion HANA
DB02Analisis de tablas y espacio en base de datos
ST04Monitor de rendimiento de base de datos
ST06Monitor del sistema operativo
ST03NEstadisticas de carga de trabajo
SM50Procesos de trabajo activos
SM66Procesos globales en todos los servidores
ST22Dumps ABAP
SM21Log del sistema

Vistas de monitorizacion M_*

SAP HANA proporciona vistas de sistema (M_*) para monitorizacion en tiempo real:

VistaInformacion
M_SERVICE_MEMORYUso de memoria por servicio
M_HOST_RESOURCE_UTILIZATIONCPU, memoria y disco del host
M_CONNECTIONSConexiones activas
M_EXPENSIVE_STATEMENTSQueries costosas
M_SQL_PLAN_CACHECache de planes de ejecucion
M_BLOCKED_TRANSACTIONSTransacciones bloqueadas
M_LOCK_WAITS_STATISTICSEstadisticas de espera por locks
M_CS_TABLESTablas column store
M_RS_TABLESTablas row store

Queries SQL para monitorizacion

Ver uso de memoria

SELECT 
    HOST,
    ROUND(USED_PHYSICAL_MEMORY/1024/1024/1024, 2) AS USED_GB,
    ROUND(FREE_PHYSICAL_MEMORY/1024/1024/1024, 2) AS FREE_GB,
    ROUND(USED_PHYSICAL_MEMORY * 100.0 / (USED_PHYSICAL_MEMORY + FREE_PHYSICAL_MEMORY), 1) AS USED_PCT
FROM M_HOST_RESOURCE_UTILIZATION;

Top 10 tablas por tamano

SELECT TOP 10
    SCHEMA_NAME,
    TABLE_NAME,
    ROUND(TABLE_SIZE/1024/1024, 2) AS SIZE_MB,
    RECORD_COUNT
FROM M_CS_TABLES
ORDER BY TABLE_SIZE DESC;

Queries mas lentas

SELECT TOP 20
    STATEMENT_HASH,
    EXECUTION_COUNT,
    ROUND(TOTAL_EXECUTION_TIME/1000000, 2) AS TOTAL_SEC,
    ROUND(AVG_EXECUTION_TIME/1000, 2) AS AVG_MS,
    SUBSTR(STATEMENT_STRING, 1, 100) AS QUERY
FROM M_SQL_PLAN_CACHE
WHERE EXECUTION_COUNT > 0
ORDER BY TOTAL_EXECUTION_TIME DESC;

Conexiones activas

SELECT 
    USER_NAME,
    APPLICATION_NAME,
    CLIENT_HOST,
    CONNECTION_STATUS,
    CREATED_BY
FROM M_CONNECTIONS
WHERE CONNECTION_STATUS = 'RUNNING'
ORDER BY START_TIME;

Optimizacion de memoria

SAP HANA es una base de datos in-memory. La gestion de memoria es critica:

ParametroDescripcionRecomendacion
global_allocation_limitLimite maximo de memoria90% de RAM fisica
statement_memory_limitLimite por consultaEvita que una query consuma toda la RAM
enable_unloadDescarga de columnasActivar para tablas poco usadas

Limpiar cache de planes SQL

-- Limpiar cache completa (usar con precaucion)
ALTER SYSTEM CLEAR SQL PLAN CACHE;

-- Limpiar solo planes no usados recientemente
ALTER SYSTEM CLEAR SQL PLAN CACHE SELECTIVE;

Optimizacion de tablas

Column Store vs Row Store

TipoVentajasUso recomendado
Column StoreCompresion, agregaciones rapidasTablas grandes, reporting, analytics
Row StoreOLTP, escrituras frecuentesTablas pequenas, alta transaccionalidad

Delta merge

Las tablas column store usan delta storage para inserciones. El delta merge consolida estos datos:

-- Ver tablas con delta grande (candidatas a merge)
SELECT 
    SCHEMA_NAME,
    TABLE_NAME,
    RAW_RECORD_COUNT_IN_DELTA,
    RAW_RECORD_COUNT_IN_MAIN
FROM M_CS_TABLES
WHERE RAW_RECORD_COUNT_IN_DELTA > 1000000
ORDER BY RAW_RECORD_COUNT_IN_DELTA DESC;

-- Forzar delta merge en una tabla
MERGE DELTA OF "SCHEMA"."TABLE";

Optimizacion de consultas

  • Usar EXPLAIN PLAN: Analiza el plan de ejecucion antes de ejecutar
  • Evitar SELECT *: Selecciona solo columnas necesarias
  • Usar indices: Crea indices en columnas de filtro frecuente
  • FETCH FIRST: Limita resultados cuando sea posible
  • Evitar funciones en WHERE: Impiden uso de indices
-- Analizar plan de ejecucion
EXPLAIN PLAN FOR
SELECT * FROM SCHEMA.TABLE WHERE FIELD = 'VALUE';

-- Ver el plan generado
SELECT * FROM EXPLAIN_PLAN_TABLE;

Alertas y umbrales

MetricaWarningCritico
Uso de memoria>80%>90%
Uso de CPU>70%>85%
Espacio en disco>75%>90%
Conexiones activas>500>800
Delta store size>10M registros>50M registros

Herramientas de administracion

  • SAP HANA Studio: IDE completo para administracion y desarrollo
  • SAP HANA Cockpit: Interfaz web para monitorizacion
  • hdbsql: Cliente de linea de comandos
  • DBA Cockpit (DBACOCKPIT): Desde SAP GUI

Preguntas frecuentes

Como ver el uso de memoria en SAP HANA?

Usa la vista M_HOST_RESOURCE_UTILIZATION para ver memoria fisica usada y libre. Desde SAP GUI puedes usar la transaccion DBACOCKPIT o ST04. El uso de memoria no deberia superar el 90% del limite configurado en global_allocation_limit.

Que es el delta merge en SAP HANA?

El delta merge es el proceso que consolida datos del delta storage (donde van las inserciones nuevas) con el main storage de las tablas column store. HANA lo ejecuta automaticamente pero puedes forzarlo manualmente con MERGE DELTA OF si detectas deltas muy grandes.

Como identifico queries lentas en HANA?

Consulta la vista M_EXPENSIVE_STATEMENTS para ver las queries mas costosas en tiempo real, o M_SQL_PLAN_CACHE para estadisticas historicas. Ordena por TOTAL_EXECUTION_TIME para encontrar las queries que mas recursos consumen.

Cual es la diferencia entre Column Store y Row Store?

Column Store almacena datos por columnas, ideal para analytics y agregaciones sobre tablas grandes. Row Store almacena por filas, mejor para OLTP con muchas escrituras. En SAP HANA la mayoria de tablas usan Column Store por defecto.

Que transaccion uso para monitorizar HANA desde SAP GUI?

DBACOCKPIT es la transaccion principal para administracion de SAP HANA desde SAP GUI. Proporciona acceso a monitores de rendimiento, espacio, backups, alertas y configuracion. ST04 y DB02 tambien son utiles para analisis especificos.


Contenido relacionado

Mira lo que te tenemos preparado!!!!
Subir