SAP HANA Production SQL Handbook
A dedicated operational reference manual separate from conceptual tutorials. Every query is annotated with required privileges, database container (SystemDB vs. Tenant), safety classification, important columns, expected output, and next diagnostic steps.
SYS.M_* inside a tenant returns metrics for that tenant alone. To query across the entire physical landscape, connect to SystemDB on port 30013 and query views with tenant prefix.Retrieves exact database version, compile branch, build timestamp, and patch level.
Key Diagnostic Columns
KEY:System attribute nameVALUE:Exact version string (e.g. 2.00.070.00...)Expected Diagnostic Output
KEY | VALUE ------------------------------------------------------ Version | 2.00.070.00.1679941421 (fa/hana2sp07) Build Date | 2023-03-27 19:45:00 Platform | Linux x86_64 Instance Number | 00
Exposes total physical memory, resident memory, allocated memory, and memory headroom against Global Allocation Limit.
Key Diagnostic Columns
SERVICE_NAME:Engine process name (indexserver, nameserver)RESIDENT_MEM_GB:Actual physical RAM consumed by the OS processUSED_MEM_GB:Pool memory currently allocated by HANA heapsEFFECTIVE_LIMIT_GB:Maximum memory limit allocated to this serviceUTILIZATION_PCT:Percentage of allowed limit usedExpected Diagnostic Output
HOST | PORT | SERVICE_NAME | LOGICAL_MEM_GB | RESIDENT_MEM_GB | USED_MEM_GB | EFFECTIVE_LIMIT_GB | UTILIZATION_PCT ---------------------------------------------------------------------------------------------------------------------- hana01 | 30003 | indexserver | 195.40 | 184.20 | 162.80 | 220.00 | 74.0 hana01 | 30001 | nameserver | 5.10 | 4.10 | 3.20 | 58.00 | 5.5
Monitors overall Linux host health, total RAM, free OS memory, CPU utilization, and ensures swap space is not being paged.
Key Diagnostic Columns
TOTAL_RAM_GB:Physical RAM installed in server chassisUSED_SWAP_GB:Amount of swap space actively paged (CRITICAL: should be near 0)TOTAL_HOST_CPU_PCT:Combined CPU consumption across all coresExpected Diagnostic Output
HOST | TOTAL_RAM_GB | FREE_RAM_GB | USED_RAM_GB | TOTAL_SWAP_GB | USED_SWAP_GB | TOTAL_HOST_CPU_PCT ---------------------------------------------------------------------------------------------------- hana01 | 256.00 | 58.40 | 197.60 | 32.00 | 0.10 | 18
Exposes statements currently executing in the engine right now, their runtime, executing user, and thread state.
Key Diagnostic Columns
CONNECTION_ID:Client session ID (used if cancellation is needed)RUNTIME_SEC:Active execution duration in secondsALLOC_MEM_MB:Memory dynamically allocated to this querySQL_TEXT:Preview of the executing SQL statementExpected Diagnostic Output
STATEMENT_ID | CONNECTION_ID | USER_NAME | APPLICATION_USER_NAME | ALLOC_MEM_MB | RUNTIME_SEC | STATEMENT_STATUS | SQL_TEXT --------------------------------------------------------------------------------------------------------------------------------------------------- 1840291058201090 | 329102 | SAPABAP1 | RFC_BATCH_USER | 4210.50 | 145.20 | Running | SELECT VBAP.VBELN, VBAP.POSNR, VBAK.KUNNR FROM VBAP JOIN VBAK...
Surgically identifies blocked sessions, lock mode requested, and the root blocker holding the exclusive lock.
Key Diagnostic Columns
WAITING_CONNECTION_ID:Session stuck waiting for lockROOT_BLOCKER_CONN_ID:Offending session holding the lockWAIT_TIME_SEC:Duration in seconds the session has been stuckTABLE_NAME:Contended database tableHOLDING_USER:Business user holding the root lockExpected Diagnostic Output
WAITING_CONNECTION_ID | ROOT_BLOCKER_CONN_ID | LOCK_TYPE | LOCK_MODE | WAIT_TIME_SEC | SCHEMA_NAME | TABLE_NAME | WAITING_USER | HOLDING_USER | BLOCKER_STATEMENT ------------------------------------------------------------------------------------------------------------------------------------------------------------- 329400 | 328105 | RECORD | EXCLUSIVE | 420.50 | SAPABAP1 | ACDOCA | FINANCE_01 | BATCH_REORG | UPDATE ACDOCA SET XBLNR = ...
Profiles the most expensive SQL queries based on cumulative elapsed execution duration from M_EXPENSIVE_STATEMENTS.
Key Diagnostic Columns
STATEMENT_HASH:Unique hash to lookup query in Plan CacheRUNTIME_SEC:Total elapsed time in secondsCPU_SEC:CPU processing time across all worker threadsMEM_MB:Peak memory allocatedExpected Diagnostic Output
STATEMENT_HASH | USER_NAME | APPLICATION_NAME | START_TIME | RUNTIME_SEC | CPU_SEC | MEM_MB | RECORDS | SHORT_SQL --------------------------------------------------------------------------------------------------------------------------------------------------- a8f9210c48e02914bb10294109204910 | SAPABAP1 | ABAP:SAPL... | 2026-10-23 06:14:02 | 340.20 | 850.40 | 6200.00 | 1250000 | SELECT * FROM BSEG WHERE BUKRS = ...
Validates that overnight full data backups and automated redo log backups completed successfully.
Key Diagnostic Columns
ENTRY_TYPE_NAME:complete data backup, log backup, differential data backupSTATE_NAME:successful, failed, or runningDURATION_MIN:Duration in minutesSIZE_GB:Backup size on disk or BackintExpected Diagnostic Output
ENTRY_TYPE_NAME | STATE_NAME | UTC_START_TIME | UTC_END_TIME | DURATION_MIN | SIZE_GB | MESSAGE ------------------------------------------------------------------------------------------------------------------- complete data backup | successful | 2026-10-23 01:00:00 | 2026-10-23 01:42:15 | 42.25 | 412.50 | Backup completed. log backup | successful | 2026-10-23 08:15:00 | 2026-10-23 08:15:10 | 0.17 | 0.52 |
Verifies primary-secondary replication connection state, sync mode, secondary active status, and log shipping replay backlog.
Key Diagnostic Columns
REPLICATION_MODE:SYNC, SYNCMEM, or ASYNCOPERATION_MODE:logreplay or delta_datashippingCONNECTION_STATE:ACTIVE, CONNECTING, or ERRORSECONDARY_ACTIVE_STATUS:YES (in sync) or NO (behind / down)BACKLOG_MB:Unshipped redo log volume pending replicationExpected Diagnostic Output
SITE_NAME | SECONDARY_SITE_NAME | REPLICATION_MODE | OPERATION_MODE | CONNECTION_STATE | SECONDARY_ACTIVE_STATUS | BACKLOG_MB | SHIPPING_LATENCY_SEC --------------------------------------------------------------------------------------------------------------------------------------------- SITE_PRI | SITE_SEC | SYNCMEM | logreplay | ACTIVE | YES | 0.00 | 0.05
Gracefully rolls back a runaway query or forcefully kills an unresponsive database connection.