MDB state cache
The MDB state cache view of the PPA allows you to browse the cache in which MDB stores completed queries, along with the new database states that they engender, and performance information.
The queries in the cache reflect preprocessing that takes place before the database engine
begins executing the query, and therefore queries may not appear in their original form, as
submitted or embedded in an application. For example, a <link>
to a
worksheet is processed as two separate queries, one for the worksheet (inner query) and one
for the query linking to it (outer query). The outer query will appear in the cache with a
link to a temporary table, and the inner query will appear separately in the cache.
Similarly, <merge>
is decomposed into separate subqueries and the result
is placed in a temp table, which may appear in the cache as the base for subsequent
operations. Also, block code, and forms such as <loop>
,
<do>
, and <dynamic>
are processed before the
database engine is invoked and therefore will not appear in the state cache, although queries
run by these forms will.
The cache may be browsed in two modes. When Telescope queries is not
selected, each section of a query that corresponds to a new database state will be
displayed separately. For context, the previously-cached section(s), if any, for a
given section will also be displayed, dimmed, before the section of interest. For example, a
query consisting of only two selections and a tabulation would correspond to three separate
entries in the cache: one with the <base>
operation and the first
<sel>
, the second with the second <sel>
(with the
first two operations displayed dimmed), and the third with the <tabu>
(with the first 3 operations displayed dimmed). Note that not every operation corresponds to
an independent new state.
When Telescope queries is selected, all sections of a query are displayed at the same time, in separate boxes. In this mode, even if two separate queries were run, one of which was a identical to the beginning of the second, only the second (longer) query will be shown. This mode can reduce the number of cache entries that need to be reviewed. All data and performance information is available for every query section in either mode.
By default, cached queries based on in-memory temporary tables are included in the display.
It is possible to eliminate these from the display by unchecking the checkbox. This will
prevent, for example, operations subsequent to a <merge>
operation from
appearing. PPA automatically eliminates most, though not necessarily all, system queries (e.g.
those issued by the GUI, by tools like the Object Manager, and by PPA itself) to avoid
superfluous clutter.The displayed queries may be filtered on three criteria. The
Find by base table drop-down list contains a list of all the paths
that appear as base tables for the cached queries. Selecting one of these restricts the
displayed queries to those based on the specified path. The Find by last cached
op drop-down list contains a list of all "final" operations (e.g.
sel
, tabu
, sort
), i.e. those appearing at
the end of the cached queries. Selecting an operation restricts the displayed queries to those
that end with the specified operation.
Important note: When Telescope queries is selected, this will
only find the longest queries ending in the specified operation, not shorter initial portions
of those queries. Depending on your objective, you may want to turn off telescope mode before
using Find by last cached op. It is also possible to search all queries
by any arbitrary text string (operations, column names, pathnames, attributes, etc.) by
entering the text in the Find by raw query text field. Again, remember
that cached queries are preprocessed; you won't find them by entering, for example, block code
or tags like <merge>
that appear in your original submitted query.
Instead, try using expressions, column names, tables, etc. from your query. Use the navigation
buttons <<, <, >, and >> ("first," "previous," "next," and "last," respectively) to
browse through all queries found with the given filter criteria.
- Telescope queries
- When selected, finds the longest queries ending in the specified operation, not shorter initial portions of those queries.
- Include queries on temp tables (merges, etc.)
- When selected, include both physical and temporary tables in your search.
- Find by base table
- Select a base table from the drop-down list.
- Find by last cached op
- Select a "final" operation (those appearing at the end of the cached queries) from the
drop-down list. Examples include
sel
,tabu
, andsort
. - Find by raw query text
- Enter text that is in the query.
- Arrow keys
- Browse through the cache entries.
- Cached raw query
- This section shows details about the cached raw query, including the following
information.
- Whether the table is physical or temporary
- The name of the table
- The total number of rows of the table
- The number of segments (physical tables only)
- The number of machines (physical tables only)
- Click Table info for a more detailed breakdown of machine names and segments (physical tables only). See Physical tables for more information.
- Click Show data to view the actual data that the query returns. You can then open the table in TRS, if desired.
- The cached query itself
- Click Performance for a performance details view. This view includes query coordination at accumulator and query execution performance. You can export raw performance data to TRS.
- The resulting number of rows