QUERY_EVENTS

Returns information about query planning, optimization, and execution events.

* In combination, TRANSACTION_ID, STATEMENT_ID, and REQUEST_ID uniquely identify a statement within a session.
Column Name Data Type Description
EVENT_TIMESTAMP

TIMESTAMPTZ

Time when Vertica recorded the event.

NODE_NAME

VARCHAR

Name of the node that is reporting the requested information.

USER_ID

INTEGER

Identifier of the user for the query event.

USER_NAME

VARCHAR

Name of the user for which Vertica lists query information at the time it recorded the session.

SESSION_ID

VARCHAR

Identifier for this session. This identifier is unique within the cluster at any point in time but can be reused when the session closes.

REQUEST_ID* INTEGER Unique identifier of the query request in the user session.
TRANSACTION_ID* INTEGER Identifier for the transaction within the session, if any; otherwise NULL.
STATEMENT_ID* INTEGER Unique numeric ID for the currently-running statement. NULL indicates that no statement is currently being processed.
EVENT_CATEGORY

VARCHAR

Category of event: OPTIMIZATION or EXECUTION.

EVENT_TYPE

VARCHAR

Type of event. For details on each type, see the following sections:

EVENT_DESCRIPTION

VARCHAR

Generic description of the event.

OPERATOR_NAME

VARCHAR

Name of the Execution Engine component that generated the event, if applicable; for example, NetworkSend. Values from the OPERATOR_NAME and PATH_ID columns let you tie a query event back to a particular operator in the query plan. If the event did not come from a specific operator, the OPERATOR_NAME column is NULL.

PATH_ID

INTEGER

Unique identifier that Vertica assigns to a query operation or path in a query plan, NULL if the event did not come from a specific operaton.

For more information, see EXECUTION_ENGINE_PROFILES.

OBJECT_ID

INTEGER

Object identifier such as projection or table to which the event refers.

EVENT_DETAILS

VARCHAR

Free-form text describing the specific event.

EVENT_SEVERITY VARCHAR

Indicates severity of the event with one of the following values:

  • Informational: No action required
  • Warning: Remedial action recommended as specified in SUGGESTED_ACTION
  • Critical: Remedial action required, as specified by SUGGESTED_ACTION
SUGGESTED_ACTION

VARCHAR

Specifies remedial action, recommended or required as indicated by EVENT_SEVERITY.

Informational Event Types

Event Type Description
CSE ANALYSIS The optimizer performed Common subexpressions analysis
CSE ANALYSIS STATS Time spent on Common subexpressions analysis (msec)
EXPRESSION_EVAL_ERROR An exception occurred during evaluation of an expression
EXTERNAL_PREDICATE_PUSHDOWN_NOT_SUPPORTED Predicate pushdown for older Hive versions may not be supported. For more information, see Improving Query Performance.
FLATTENED SUBQUERIES Subqueries flattened in FROM clause
GROUP_BY_PREPASS_FALLBACK Vertica could not run an optimization. In-memory prepass is disabled. The projection may not be optimal.
GROUPBY PUSHDOWN Internal to Vertica
HIVE_PARTITION_PATH_PRUNED A path (reported in event details) was pruned by the ORC or Parquet parser.
HIVE_PARTITION_PRUNING

The ORC or Parquet parser pruned partitions. The event reports how many paths were pruned, and HIVE_PARTITION_PATH_PRUNED events record more details.

LibHDFS++ FAILOVER RETRY Vertica attempted to contact a NameNode on an HDFS cluster that uses High Availability NameNode and did not receive a response. Vertica retried with a different NameNode.
LibHDFS++ MANUAL FALLBACK Vertica accessed HDFS using the hdfs URL scheme but HDFSUseWebHDFS is set. Vertica fell back to WebHDFS.
LibHDFS++ UNSUPPORTED OPERATION Vertica accessed HDFS using the hdfs URL scheme, but the HDFS cluster uses an unsupported feature such as wire encryption or HTTPS_ONLY or the Vertica session uses delegation tokens. Vertica fell back to WebHDFS.
MERGE_CONVERTED_TO_UNION Vertica has converted a merge operator to a union operator due to the sort order of the multi-threaded storage access stream.
MISSING_HIVE_PARTITION The Parquet parser used loose schema matching to load data and a specified partition column was not found. The parser assigned a value of NULL. The event description includes the name of the missing column.
NO GROUPBY PUSHDOWN Internal to Vertica
NODE PRUNING Vertica performed node pruning, which is similar to partition pruning, but at the node level.
ORC_FILE_INFO A query of ORC files encountered missing information (such as time zone) or an unrecognized ORC version. For missing information, Vertica uses a default value (such as the local time zone).
ORC_SOURCE_PRUNED An entire ORC file was pruned during predicate pushdown.
ORC_STRIPES_PRUNED The identified stripes were pruned during predicate pushdown. If an entire ORC file was pruned, it is instead recorded with an ORC_SOURCE_PRUNED event.
OUTER OVERRIDE NOT USED Vertica found swapping inner/outer tables in a join unnecessary because the inner/outer tables were in good order. (For example, a smaller table was used in an inner join.)
OUTER OVERRIDE USED For efficiency and optimization, Vertica has swapped the inner/outer tables in a join. Vertica used the smaller table as the inner table.
PARQUET_ROWGROUPS_PRUNED The identified row groups were pruned during predicate pushdown.
PREDICATES_DISCARDED_FROM_SCAN Some predicates have been discarded from this scan because expression analysis shows they are not needed.
REJECT_ROWNUMS_HIT_BUFFER_LIMIT Buffering row numbers during rejection hit buffer limit
SEQUENCE CACHE REFILLED Vertica has refilled sequence cache.
SIP_FALLBACK This optimization did not apply to this query type.
SMALL_MERGE_REPLACED Vertica has chosen a more efficient way to access the data by replacing a merge.
STORAGE_CONTAINERS_ELIMINATED Vertica has performed partition pruning for the purpose of optimization.
TRANSITIVE PREDICATE

Vertica has optimized by adding predicates to joins where it makes logical sense to do so.

For example, for the statement, SELECT * FROM A, B WHERE A.a = B.a AND A.a = 1;Vertica may add a predicate B a = 1 as a filter for better storage access of table B.

TYPE_MISMATCH_COLUMNS_PARQUETPARSER The Parquet parser used loose schema matching to load data, and could not coerce values in the Parquet data to the types defined for the table. By default the parser rejects the row. For more information, see PARQUET (Parser).
UNMATCHED_TABLE_COLUMNS_PARQUETPARSER The Parquet parser used loose schema matching to load data, and columns in the table had no corresponding columns in the data. The columns were given values of NULL.
VALUE_TRUNCATED A character value is too long.
WEBHDFS FAILOVER RETRY Vertica attempted to contact a NameNode on an HDFS cluster that uses High Availability NameNode and did not receive a response. Vertica retried with a different NameNode.

Warning Event Types

Review the following event types and recommended actions:

Event Type Description Recommended Action
AUTO_PROJECTION_USED The optimizer used an auto-projection to process this query. Create a projection that is appropriate for this query and others like it; consider using Database Designer to generate query-specific projections.
GROUP_BY_SPILLED This event type is typically related to a specific type of query, which you might need to adjust. Identify the type of query and make adjustments accordingly. You might need to adjust resource pools, projections, or the amount of RAM available. Try running the query on a cluster with no additional workload.
INVALID COST When creating a query plan, the optimizer calculated an invalid cost for a path: not-a-number (NaN) value, infinity value, or negative value. The path cost was set to its default value. No action available to users.
PATTERN_MATCH_NMEE More than one pattern event is true for a single row Modify event expressions to ensure that only one event can be true for any row. Alternatively, modify the query using a MATCH clause with ROWS MATCH FIRST EVENT.
PREDICATE OUTSIDE HISTOGRAM

A predicate value you are trying to match does not exist in a set of possible values for a specific column.

For example, you try to match a VARCHAR value WHERE mystring = "ABC<newline>". In this case, the newline character throws off the predicate matching optimizations.

Run ANALYZE_STATISTICS on the column.

RESEGMENTED_MANY_ROWS This event type is typically related to a specific type of query, which you might need to adjust. Do projections need to be segmented in a different way to allow for join locality? Can you rewrite the query to filter out more rows at storage access time? (Typically, Vertica does so automatically through predicate pushdown.) Review your explain plan.
RLE_OVERRIDDEN The average run counts are not large enough for Run Length Encoding (RLE). This event occurs with queries where the filtered results for certain columns do not work with RLE because cardinality is less than 10. Review and rewrite your query, if necessary.

Critical Event Types

Review the following event types, and resolve issues as recommended:

Event Type Description Required Action
DELETE WITH NON OPTIMIZED PROJECTION One or more projections do not have your delete filter column in their sort order, causing Vertica difficulty identifying ros to mark as deleted. Add the delete filter column to the end of every projection sort order for your target delete table.
JOIN_SPILLED Vertica has spilled a join to disk. A join spill event slows down the subject query and all other queries as it consumes resources while using disk as virtual memory.

Try the following:

  1. Review the explain plan. The query might be too ambitious, for example, cross joining two large tables.
  2. Consider adding the query to a lower priority pool to reduce impact on other queries.
  3. Create projections that allow for a merge join instead of a hash join.
  4. Adjust the PLANNEDCONCURRENCYresource pool so that queries have more memory to execute.
MEMORY LIMIT HIT Indicates query complexity or, possibly, lack of available system memory. Consider adjusting the MAXMEMORYSIZE and PLANNEDCONCURRENCY resource pools so that the optimizer has sufficient memory. On a heavily used system, this event may occur more frequently.
NO HISTOGRAM Indicates a table does not have an updated column histogram. Running the function ANALYZE_STATISTICS most often corrects this issue.

Privileges

Non-superuser: No explicit privileges required. You only see records for tables that you have privileges to view.

See Also