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-TABLE statement 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, and ADD-FIELD.
  • Shared temp-table—Accessible by multiple procedures or methods within the same session. It is defined with the SHARED keyword, 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 SHARED keyword, 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 STATIC keyword 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:
Table 1. Temp-table details
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:
Table 2. temp-table object details
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.
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.