Core PortalSYS Schema Virtual ViewsZero-Disk In-Memory Engine State

M_* Dynamic Tables & Views Catalog

In SAP HANA, all monitoring views prefixed with SYS.M_* are virtual in-memory windows into active C++ memory pointers. They require zero disk I/O to query, providing immediate real-time insight into threads, memory allocators, lock contention, savepoint blocking, and replication health.

Container Isolation (MDC): Querying SYS.M_* inside a tenant database container returns metrics isolated to that tenant alone. Connecting to SystemDB (port 30013) allows querying cross-tenant landscape views such as M_DATABASE, M_SYSTEM_REPLICATION, and host-level service allocations.
Showing 48 of 48 dynamic monitoring views
SYS.M_SERVICE_MEMORYMemory & SizingAll ServicesBoth
What It Is

The foundational memory accounting view in SAP HANA. It exposes process-level resident physical RAM, internal pool-allocated memory, code/stack overhead, and the dynamic Effective Allocation Limit (Global Allocation Limit).

What It Is Used For

Used by DBAs as the primary health check to monitor memory headroom, prevent Out-of-Memory (OOM) fatal crashes, track tenant-level memory quotas, and verify whether the indexserver is approaching the 90% allocation watermark.

SYS.M_HEAP_MEMORYMemory & SizinghdbindexserverBoth
What It Is

Exposes fine-grained internal memory consumption broken down by individual C++ heap allocators (over 200 distinct allocator classes inside the engine).

What It Is Used For

Forensic root cause analysis when M_SERVICE_MEMORY reports high used memory. Identifies whether memory is consumed by column store tables, statement execution, plan cache, persistence page buffers, or internal memory leaks.

SYS.M_CS_TABLESMemory & SizinghdbindexserverTenant
What It Is

Dynamic monitoring view detailing memory consumption and load states for all Column Store tables and partitioned fragments resident in RAM.

What It Is Used For

Identifying the largest memory-consuming application tables (e.g. ACDOCA, BSEG, MATDOC, EDI40), assessing partially loaded states, tracking table read counts, and calculating data compression savings.

SYS.M_CS_COLUMNSMemory & SizinghdbindexserverTenant
What It Is

Exposes column-level memory consumption, detailing distinct value dictionaries, compressed bit-packed vectors, and inverted search index footprints.

What It Is Used For

Diagnosing individual columns consuming disproportionate RAM within huge tables. Helps DBAs evaluate whether custom secondary indexes or high-cardinality text columns should be dropped or archived.

SYS.M_CS_ALL_COLUMNSMemory & SizinghdbindexserverTenant
What It Is

Comprehensive view encompassing all column partitions, main store parts, and write-optimized delta store fragments.

What It Is Used For

Detailed partition-by-partition analysis of multi-terabyte tables. Used to detect partition skew and uncompressed delta fragments.

SYS.M_RS_TABLESMemory & SizinghdbindexserverTenant
What It Is

Live monitoring view for Row Store tables. Tracks row count, allocated shared memory pages, and row store fragmentation.

What It Is Used For

Monitoring row store tables (system catalogs, configuration tables, locking queues). Critical for detecting row store fragmentation and planning offline or online row store reorganizations.

SYS.M_TABLE_PERSISTENCE_STATISTICSMemory & SizinghdbindexserverTenant
What It Is

Maps application tables to their physical storage footprint in persistence files on disk (/hana/data).

What It Is Used For

Comparing table RAM footprint against disk persistence size, estimating data volume growth, and monitoring delta log volume on disk.

SYS.M_SHARED_MEMORYMemory & SizingAll ServicesBoth
What It Is

Tracks inter-process shared memory allocations (POSIX / System V shared memory segments) managed across HANA daemon processes.

What It Is Used For

Ensuring shared memory segments are cleaned up during service restarts and diagnosing fast restart option (tmpfs) memory allocations.

SYS.M_SERVICE_THREADSThreads & CPU ExecutionAll ServicesBoth
What It Is

Real-time view of every internal C++ execution thread running in the database process hierarchy.

What It Is Used For

Triage for CPU spikes, thread pool exhaustion, thread hangs, and lock contention. Exposes the exact C++ method call stacks for threads in wait states.

SYS.M_ACTIVE_STATEMENTSThreads & CPU ExecutionhdbindexserverTenant
What It Is

Real-time monitor of all SQL statements and calculation views currently being executed by the engine.

What It Is Used For

Immediate live troubleshooting during system slowdowns. Shows SQL text, execution duration, CPU consumption, thread count, and connection ID for queries active right now.

SYS.M_EXPENSIVE_STATEMENTSThreads & CPU ExecutionhdbindexserverTenant
What It Is

Historical flight-recorder view capturing completed statements that exceeded configured runtime or memory thresholds in global.ini.

What It Is Used For

Post-mortem performance optimization, identification of poorly written ABAP custom reports, finding queries lacking indexes, and auditing heavy ad-hoc SQL.

SYS.M_SQL_PLAN_CACHEThreads & CPU ExecutionhdbindexserverTenant
What It Is

In-memory cache of compiled SQL execution plans, abstract syntax trees, and cost optimizer costings.

What It Is Used For

Analyzing query plan reusability, identifying high compilation overhead, detecting SQL plan cache evictions, and diagnosing plan regressions using plan IDs.

SYS.M_WORKLOAD_WORKLOAD_CLASSESThreads & CPU ExecutionhdbindexserverTenant
What It Is

Defines and monitors active Workload Management classes, thread limits, memory caps, and query timeouts.

What It Is Used For

Preventing analytics, reporting users, or data lake queries from starving OLTP business transactions of CPU and RAM.

SYS.M_SERVICE_STATISTICSThreads & CPU ExecutionAll ServicesBoth
What It Is

Aggregated process statistics reporting real-time CPU utilization, open client connections, and heap allocations.

What It Is Used For

Top-level host capacity verification. Quick check to determine if the server is CPU bound or I/O bound.

SYS.M_BLOCKED_TRANSACTIONSTransactions & LockshdbindexserverTenant
What It Is

Lock dependency view capturing lock wait chains. Shows the root transaction holding a conflicting lock and all transactions blocked waiting for it.

What It Is Used For

Critical triage during application lockups, batch job hangs, and SAP update work process freezes (SM12/SM50). Identifies the root blocking transaction ID and lock wait duration.

SYS.M_TRANSACTIONSTransactions & LockshdbindexserverTenant
What It Is

Exposes the complete transaction table managed by the Transaction Manager in the indexserver.

What It Is Used For

Tracking active transaction states (Active, Inactive, Committed, Rolled back), identifying write transactions, and finding idle sessions holding open locks.

SYS.M_RECORD_LOCKSTransactions & LockshdbindexserverTenant
What It Is

Detailed low-level view of individual record/row-level locks currently acquired in memory.

What It Is Used For

Forensic lock analysis to identify specific locked primary keys and rows causing concurrency bottlenecks in high-volume tables (e.g. number range tables).

SYS.M_OBJECT_LOCKSTransactions & LockshdbindexserverTenant
What It Is

Exposes metadata and table-level object locks acquired during DDL, migrations, or backup executions.

What It Is Used For

Diagnosing DDL locks (e.g. `ALTER TABLE`, `CREATE INDEX`, `TRUNCATE`) that block concurrent DML business operations.

SYS.M_SNAPSHOTSTransactions & LockshdbindexserverTenant
What It Is

Exposes active Multi-Version Concurrency Control (MVCC) read transaction snapshots.

What It Is Used For

Diagnosing snapshot retention. Old open read snapshots prevent the database from freeing historical row versions, leading to memory bloat.

SYS.M_TRANSACTION_REDO_FILESTransactions & LockshdbindexserverTenant
What It Is

Monitors open transaction redo log records currently buffered in the logger pipeline before being committed.

What It Is Used For

Estimating rollback time for long-running batch transactions and checking uncommitted log volume.

SYS.M_SAVEPOINTSPersistence & LogginghdbindexserverBoth
What It Is

Exposes the active status and internal phase of the current periodic Savepoint cycle.

What It Is Used For

Diagnosing savepoint blocking stalls. Monitors the critical phase where transaction commits are momentarily paused while the restart record is updated.

SYS.M_SAVEPOINT_STATISTICSPersistence & LogginghdbindexserverBoth
What It Is

Historical statistical view capturing metrics across thousands of completed savepoints.

What It Is Used For

Analyzing storage write health over time, verifying savepoint interval compliance (default 300 seconds), and tuning `savepoint_interval_s`.

SYS.M_LOG_BUFFERSPersistence & LogginghdbindexserverTenant
What It Is

Monitors internal in-memory redo log buffers before synchronous flushing to `/hana/log`.

What It Is Used For

Diagnosing log write latency and commit stalls. Detects when transactions are blocked because all in-memory log buffers are full.

SYS.M_LOG_SEGMENTSPersistence & LogginghdbindexserverBoth
What It Is

Lists physical redo log segments on `/hana/log`, their size (default 512 MB), and backup status.

What It Is Used For

Diagnosing `/hana/log` filesystem 100% full incidents. Shows whether segments are stuck in "Writing", "Closed", or "Retained" states.

SYS.M_DATA_VOLUMESPersistence & LogginghdbindexserverBoth
What It Is

Inspects internal data volume files (`datavolume0000.dat`) located in `/hana/data`.

What It Is Used For

Monitoring internal fragmentation and payload allocation within the data volumes. Used to decide when to run data volume defragmentation.

SYS.M_BACKUP_CATALOGPersistence & LoggingAll ServicesBoth
What It Is

Complete historical catalog of all data backups (complete, differential, incremental) and automatic log backups.

What It Is Used For

Essential daily health check. Verifies backup completion, checks backup start and completion timestamps, and validates disaster recovery readiness.

SYS.M_BACKUP_CATALOG_FILESPersistence & LoggingAll ServicesBoth
What It Is

Lists physical files, pipe paths, and byte sizes associated with each backup catalog entry.

What It Is Used For

Verifying physical backup archive files on NFS / Backint destinations and estimating backup throughput in MB/s.

SYS.M_VOLUME_IO_STATISTICSPersistence & LoggingAll ServicesBoth
What It Is

Live filesystem I/O metrics broken down by data volumes, log volumes, and trace volumes.

What It Is Used For

Diagnosing storage latency bottlenecks. Measures read/write throughput (MB/s), total I/O operations count, and average service latency in milliseconds.

SYS.M_SERVICE_REPLICATIONHigh Availability & ReplicationAll ServicesBoth
What It Is

Service-level view of SAP HANA System Replication (HSR) sync states between primary and secondary nodes.

What It Is Used For

Validating that nameserver, indexserver, and other services are replicating redo logs without backlog or network errors.

SYS.M_SYSTEM_REPLICATIONHigh Availability & ReplicationhdbnameserverSystemDB
What It Is

Landscape-level HSR configuration view detailing replication modes, operation modes, and secondary tiers.

What It Is Used For

Verifying HSR replication mode (SYNC, SYNCMEM, ASYNC) and operation mode (logreplay, logreplay_readaccess, delta_datashipping).

SYS.M_SYSTEM_REPLICATION_TAKEOVER_HISTORYHigh Availability & ReplicationhdbnameserverSystemDB
What It Is

Audit log capturing all historical failovers, takeovers, and failbacks executed across the replication topology.

What It Is Used For

Auditing DR drills, validating automated cluster failovers (Pacemaker/SUSE HAE), and determining exact takeover timestamps.

SYS.M_DELTA_MERGE_STATISTICSDelta Merge & OptimizationhdbindexserverTenant
What It Is

Comprehensive history of all Delta Merge operations executed against Column Store tables.

What It Is Used For

Troubleshooting long merge runtimes, CPU spikes caused by auto-merges, merge errors, and memory surges during delta consolidation.

SYS.M_CS_MERGE_STATISTICSDelta Merge & OptimizationhdbindexserverTenant
What It Is

Granular breakdown of Column Store merge execution phases (Phase 1 dictionary merge vs Phase 2 column copy).

What It Is Used For

Fine-tuning engine merge parameters. Pinpoints whether merge bottlenecks occur in dictionary calculation or data vector copying.

SYS.M_JOB_STATISTICSDelta Merge & OptimizationAll ServicesBoth
What It Is

Exposes the status and queue depths of the engine background Job Worker thread pool.

What It Is Used For

Checking asynchronous background worker capacity for background compression, statistics updates, and savepoints.

SYS.M_CONNECTIONSConnections & SessionshdbindexserverTenant
What It Is

Live view of all open network connections from application servers, clients, and DBA tools.

What It Is Used For

Investigating connection leaks, identifying which SAP application server or batch user is issuing requests, and finding idle connections.

SYS.M_SESSION_CONTEXTConnections & SessionshdbindexserverTenant
What It Is

Exposes session-level variables and application context attached to client connections.

What It Is Used For

Connecting a raw HANA connection ID back to specific ABAP business transactions (TCODE, ABAP report name, SAP user).

SYS.M_CLIENT_VERSIONSConnections & SessionsAll ServicesBoth
What It Is

Lists versions and patch levels of all connecting client libraries and drivers.

What It Is Used For

Auditing client connectivity. Identifies outdated ODBC, JDBC, or Python hdbcli drivers that have known bugs or security flaws.

SYS.M_SECURESTOREConnections & SessionsAll ServicesBoth
What It Is

Monitors internal secure storage state, master encryption keys, and keystore status.

What It Is Used For

Validating data volume and log volume encryption key states and secure internal credentials.

SYS.M_SERVICESSystem & Landscape TopologyAll ServicesBoth
What It Is

The definitive process registry listing all daemon-supervised services across the entire SAP HANA landscape.

What It Is Used For

Verifying service health, locating process IDs (PIDs) on Linux, checking assigned SQL and internal communication ports, and validating startup progression.

SYS.M_DATABASESystem & Landscape TopologyhdbnameserverSystemDB
What It Is

Lists all database containers in an MDC environment along with their status and isolation mode.

What It Is Used For

Tenant database lifecycle management. Checking whether tenants are active, inspecting restart modes, and verifying tenant container status.

SYS.M_HOST_INFORMATIONSystem & Landscape TopologyAll ServicesBoth
What It Is

Hardware and operating system inventory exposed directly through SQL catalog queries.

What It Is Used For

Checking total physical RAM, CPU socket and core counts, OS distribution release, and Linux kernel version without logging into bash.

SYS.M_SYSTEM_OVERVIEWSystem & Landscape TopologyAll ServicesBoth
What It Is

Single-row high-level dashboard summary providing a snapshot of overall database health.

What It Is Used For

First stop during morning operational checks. Reports database version, compile date, license state, memory usage, CPU usage, and active alerts.

SYS.M_INIFILE_CONTENTSSystem & Landscape TopologyAll ServicesBoth
What It Is

Live queryable view of all configuration parameters across all layers (DEFAULT, SYSTEM, HOST, DATABASE).

What It Is Used For

Auditing configuration parameters without needing filesystem access to `.ini` files. Resolves parameter values and identifies overrides.

SYS.M_EVENTSSystem & Landscape TopologyAll ServicesBoth
What It Is

Engine alerts and events log capturing critical system issues such as disk-full warnings and license expirations.

What It Is Used For

Early warning detection of infrastructure failures before they trigger catastrophic database outages.

SYS.M_LANDSCAPE_HOST_CONFIGURATIONSystem & Landscape TopologyhdbnameserverSystemDB
What It Is

Multi-node scale-out topology monitor tracking worker nodes, standby nodes, and failover groups.

What It Is Used For

Scale-out cluster administration. Verifies host roles (worker, standby), storage partitioning, and automatic host failover status.

SYS.M_TRACEFILESStorage, Traces & DiagnosticsAll ServicesBoth
What It Is

Directory listing of all diagnostic trace files (`alert_<SID>.trc`, `nameserver_*.trc`, `indexserver_*.trc`) on `/hana/shared`.

What It Is Used For

Identifying which trace files are growing rapidly, locating crash dumps, and inspecting trace file sizes and timestamps without SSH.

SYS.M_DUMP_FILESStorage, Traces & DiagnosticsAll ServicesBoth
What It Is

Catalog of emergency diagnostic crash dumps, OOM trace dumps, and runtime dumps (RTE dumps).

What It Is Used For

Root cause analysis for service crashes and OOM events. Identifies crash timestamp, culprit thread, and dump file name.

SYS.M_DISKSStorage, Traces & DiagnosticsAll ServicesBoth
What It Is

Exposes filesystem mount point statistics, available capacity, and usage percentages for `/hana/data`, `/hana/log`, and `/hana/shared`.

What It Is Used For

Preventing filesystem 100% full stalls. Alerts DBAs when data or log storage approaches disk capacity thresholds.

Architectural Mapping

SAP HANA Engine Architecture & M_* Dynamic Tables Diagram

This end-to-end architectural diagram connects every dynamic monitoring view (SYS.M_*) directly to its parent subsystem inside SAP HANA: from client communication sockets and in-memory execution engines, down through the persistence layer, logging pipelines, high-availability replication, and host filesystem diagnostics.

Mermaid DiagramComplete SAP HANA Engine Subsystems & M_* Tables Wireframe
Architectural Flow: Maps the data flow from clients down through indexserver memory pools (M_SERVICE_MEMORY, M_HEAP_MEMORY), column/row engines (M_CS_TABLES, M_RS_TABLES), lock managers (M_BLOCKED_TRANSACTIONS), persistence savepoint cycles (/hana/data), WAL log buffers (/hana/log), backup catalogs, and landscape-wide HSR replication.