2112732 – Pool/RowEngine/MonitorView allocates large amount of memory


Large amount of memory is allocated by Pool/RowEngine/MonitorView and never be reduced until system restart, when searching M_EXPENSIVE_STATMENTS monitoring view collected by use_in_memory_tracing feature.

Reason and Prerequisites

Since Revision70, a new feature of M_EXPENSIVE_STATEMENTS monitoring view was introduced. This feature is a performance enhancement by keeping the information of expensive statements in memory. It can reduce overhead of tracing/querying expensive statements. This feature can be turned on/off by ‘use_in_memory_tracing’ parameter in section [expensive_statement] of global.ini. Its default value is ‘true’.

  • global.ini
    use_in_memory_tracing = true

When information of expensive statements is stored in memory and M_EXPENSIVE_STATEMENTS monitoring view is searched with filter conditions (WHERE …) for one of following columns;


Then, memory allocated by “Pool/RowEngine/MonitorView” for M_EXPENSIVE_STATEMENTS monitoring view won’t be released due to programming error.
You can check the memory size allocated by Pool/RowEngine/MonitorView with following sql

  • select exclusive_size_in_use from m_heap_memory where category = ‘Pool/RowEngine/MonitorView’


This programming error was fixed from Rev85.1 and higher version.
In Revision70 ~ 85, you can avoid this memory leak by turning off use_in_memory_tracing

  • alter system alter configuration (‘global.ini’, ‘system’) set (‘expensive_statement’, ‘use_in_memory_tracing’) = ‘false’;

Leave a Reply