Skip to content

User Interface (v1.5)

Andrey Lepikhov edited this page Dec 22, 2022 · 7 revisions

GUCs

  • aqo.mode - defines how AQO works with incoming queries. Possible modes: DISABLED, CONTROLLED, LEARN, INTELLIGENT and FROZEN.
  • aqo.show_hash - (deprecated) hash value computed by query tree schematic which have a sense of a class of queries. Starting from PostgreSQL 14 AQO uses native queryid as a query class on purpose of interconnection with another extensions, such as pg_stat_statements. So, QueryId can be taken from 'Query Identifier' field in EXPLAIN ANALYZE of a query.
  • aqo.show_details - adds some details into EXPLAIN of a query, such as prediction or feature subspace hash. Also, shows some additional on screen information related to AQO specifics.
  • aqo.join_threshold - ignore queries which embodies lesser number of joins.
  • aqo.learn_statement_timeout - AQO will use current state of a plan tree to improve future predictions if query is interrupted with statement timeout.
  • aqo.force_collect_stat - allow AQO to gather statistics on query executions even in DISABLED mode. Although AQO doesn't make any predictions, some additional overhead will be added.

Functions

AQO adds into postgres catalog several additional functions.

Storage management

  • aqo_cleanup() - remove data related to a query classes which [partly] linked with removed relations. Returns a number of removed feature spaces (classes) and feature subspaces.
  • aqo_reset() - remove learning data from the AQO storage.
  • aqo_enable_class(queryid)
  • aqo_disable_class(queryid)
  • aqo_drop_class(queryid) - remove all data from the AQO storage related to the query class.
  • aqo_queries_update() - for specific queryid allow to manually change some class settings: feature space ID, learn or not AQO on this class, use AQO for cardinality predictions of queries, included in this class, use autotuning or not.

Analytics

  • aqo_cardinality_error(controlled) - show cardinality error for each known query class. If controlled == true, show the error of last execution under control of AQO. With controlled == false returns average cardinality error among all logged executions made without control of AQO.
  • aqo_execution_time(controlled) - show execution time for each known query class. Semantics of controlled parameter see in description of aqo_cardinality_error routine.

Sources for AQO interface VIEWs

  • aqo_data()
  • aqo_queries()
  • aqo_query_stat()
  • aqo_query_texts()