- SID:
PRD - Instancia:
00 - Usuario:
SYSTEMoDBADMIN. - 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;