Consultas SQL SAP HANA

La Guía de Referencia para la Administración In-Memory

Nota de Contexto: Para estos ejemplos de administración avanzada, asumiremos:
  • SID: PRD
  • Instancia: 00
  • Usuario: SYSTEM o DBADMIN.
  • Esquema SAP: SAPHANADB.

SAP HANA se gestiona mediante vistas de sistema dinámicas (prefijo M_). Esta chuleta recopila las consultas más potentes para diagnosticar salud y rendimiento.

1. Estado del Sistema y Servicios

Versión y Build de HANA

Muestra la versión exacta del Service Pack (SPS) y el número de revisión.

SELECT * FROM M_DATABASE;
---
SELECT VERSION, BUILD_ID FROM SYS.M_DATABASE;

Estado de los Procesos (Services)

Verifica si el indexserver, nameserver y otros procesos están activos y su uptime.

SELECT SERVICE_NAME, HOST, PORT, PROCESS_ID, SQL_PORT, COLOR 
FROM M_SERVICES;

2. Gestión de Memoria (RAM)

Consumo de Memoria por Servicio

Consulta crítica para entender cuánto RAM está usando cada proceso y cuánto queda del Global Allocation Limit.

SELECT HOST, SERVICE_NAME, 
       ROUND(TOTAL_MEMORY_USED_SIZE/1024/1024/1024, 2) AS USED_GB,
       ROUND(EFFECTIVE_ALLOCATION_LIMIT/1024/1024/1024, 2) AS LIMIT_GB
FROM M_SERVICE_MEMORY;

Top 10 Tablas en Column Store

Identifica qué tablas están consumiendo más memoria RAM actualmente.

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

3. Sesiones y Rendimiento (Performance)

Conexiones Activas y SQL ejecutado

Monitoriza quién está conectado y qué query está procesando cada conexión.

SELECT C.CONNECTION_ID, C.USER_NAME, C.HOST, S.SQL_TEXT
FROM M_CONNECTIONS C
JOIN M_SESSION_CONTEXT S ON C.CONNECTION_ID = S.CONNECTION_ID
WHERE C.CONNECTION_STATUS = 'RUNNING';

Sentencias "Caras" (Expensive Statements)

Lista las consultas que han superado los umbrales de tiempo o memoria configurados.

SELECT TOP 20 START_TIME, USER_NAME, DURATION_MICROSEC/1000 AS DURATION_MS, 
       MEMORY_SIZE/1024/1024 AS MEM_MB, STATEMENT_STRING
FROM M_EXPENSIVE_STATEMENTS
ORDER BY START_TIME DESC;

4. Bloqueos, Disco y Backups

Bloqueos de Transacción (Locks)

Identifica el 'Held' (quién bloquea) y el 'Wait' (quién espera) en HANA.

SELECT * FROM M_TRANSACTION_LOCKS WHERE LOCK_STATUS = 'WAITING';

Estado del Transaction Log e I/O

Verifica si hay latencia de escritura en el log, lo cual detiene los commits.

SELECT HOST, TYPE, PATH, 
       ROUND(USED_SIZE/1024/1024/1024, 2) AS USED_GB,
       ROUND(TOTAL_SIZE/1024/1024/1024, 2) AS TOTAL_GB
FROM M_VOLUMES;

Verificación del Último Backup

Comprueba si el backup de base de datos terminó correctamente.

SELECT TOP 1 SYNC_ID, STATE_NAME, START_TIME, END_TIME, 
       ROUND(BACKUP_SIZE/1024/1024/1024, 2) AS SIZE_GB
FROM M_BACKUP_CATALOG
WHERE ENTRY_TYPE_NAME = 'complete data backup'
ORDER BY START_TIME DESC;

Páginas relacionadas

Guía Principal SAP HANA

Monitorización HANA Avanzada

Performance Tuning en HANA

Paralelo: Consultas SQL Oracle