Temp-tables
- Last Updated: December 23, 2025
- 3 minute read
- OpenEdge
- Version 12.8
- Documentation
The Temp-tables view displays a paginated list of all temporary (temp)
tables in the snapshot in a tabular manner, grouped by the temp-table type and organized
by Total Memory (KB) in descending order. A temp-table is an
in-memory table that you can use to store, manipulate, and access data within a session.
It provides a flexible and efficient way to manage temporary data within ABL
applications. The view captures the following types of temp-tables:
- Static temp-table—Defined at compile time with a fixed structure. The
DEFINE TEMP-TABLEstatement creates it, and its schema (fields and indexes) remains constant throughout program execution. - Dynamic temp-table—Created and managed at runtime using the dynamic programming
constructs of ABL. The schema of a dynamic temp-table can be defined and
modified programmatically using methods like
CREATE TEMP-TABLE,ADD-BUFFER, andADD-FIELD. - Shared temp-table—Accessible by multiple procedures or methods within the same
session. It is defined with the
SHAREDkeyword, allowing different parts of the program to share and manipulate the same temp-table data. - Global shared temp-table—Similar to a shared temp-table, however, it is
accessible across different sessions. It is defined with the
GLOBAL SHAREDkeyword, making it available to all procedures and methods within the application. - Class static temp-table—Associated with a class rather than an instance of the
class. It is defined with the
STATICkeyword within a class definition, and it retains its data and structure across all instances of the class. - Auto-dynamic temp-table—A dynamic temp-table that is automatically created and managed by the AVM based on certain conditions or requirements. It provides flexibility in managing temp-table data at runtime.
Note: The memory reported for a temp-table
includes only the schema of the table and not the contents. As a result, the size of
the temp-table remains constant.
The list of temp-tables displays the following columns, which you can select or deselect from
the Primary Column Selection list using the
column picker available in
the table:
column picker available in
the table:| Column name | Description |
|---|---|
| Type | Specifies the type of temp-table. For example, OO Static
Temp-table, Auto Dynamic Temp-table,
and so on. |
| Instance Count | Specifies the count of instances of the selected temp-table that exist in memory at the time of the snapshot. |
| Total Memory (KB) | Specifies the sum of memory used by each instance of the temp-table. You can use this column to sort the rows. |
Note: The Type column is always visible and cannot be
deselected.
Analyze temp-table object set
Expand each temp-table entry to see a paginated list of the objects present under it. By
knowing the number of objects present for a specific temp-table in a snapshot, you
can understand whether temp-tables are being created and deallocated properly, and
whether there are any unnecessary or redundant temp-tables in memory. When you
expand a temp-table entry, it displays the following details about the objects,
organized by Memory (KB) in descending order:
| Column name | Description |
|---|---|
| ID | Specifies a unique identifier for a temp-table object that is created or being used within the scope of that temp-table. |
| Name | Specifies the name of the object. |
| Memory (KB) | Specifies the sum of the memory used (in KB) by the selected object and the memory used by the objects that are scoped to it. You can use this column to sort the rows. |
| Base Memory (KB) | Specifies the amount of memory used (in KB) by the object. |
| Scoped To | Specifies the object, such as a procedure, class, or reusable object responsible for managing the lifecycle of the temp-table, ensuring that its existence and memory footprint are restricted to the scope in which it is created. After the defining object completes execution or goes out of scope, the temp-table is deallocated. |
| Is Instantiated | Specifies whether a temp-table has been created and is consuming memory. A temp-table is only instantiated when its owning object, such as a procedure, class, or reusable object is active. If the object is cached or destroyed, the temp-table may no longer be instantiated. |
All columns are displayed by default. You can customize the table view by selecting or
deselecting columns using the
column picker, available through the Secondary
Column Selection menu.
column picker, available through the Secondary
Column Selection menu. Note: The Name column is
always visible and cannot be deselected.
Analyze temp-table object call stack
Clicking an object row opens a panel displaying the Call Stack, which
tracks the sequence of execution of Temp-table creation in the application. Call
stacks are critical as they help you understand which parts of the application code
were run. To copy the whole stack, click the
copy icon in the Call Stack
title bar. Because you can only view one Temp-table at a time, copying the call
stack into a text editor creates a clear and accessible record of the execution
sequence for debugging, analyzing, and collaboration purposes.