online_advisor
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
online_advisor | 1.0 | ADMIN | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 5270 | online_advisor | No | Yes | Yes | Yes | No | Yes | - |
| Related | pg_qualstats hypopg index_advisor pg_hint_plan pg_stat_plans plan_filter pg_relusage pg_track_optimizer pg_strom pg_orca |
|---|
Requires shared_preload_libraries=online_advisor on PostgreSQL 14-16; PGSTY backports upstream PG18 hook compatibility.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 1817161514 | online_advisor | - |
| RPM | PIGSTY | 1.0 | 1817161514 | online_advisor_$v | - |
| DEB | PIGSTY | 1.0 | 1817161514 | postgresql-$v-online-advisor | - |
Build
You can build the RPM / DEB packages for online_advisor using pig build:
Install
You can install online_advisor directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Preload:
Create Extension:
Usage
Sources:
- Official README for version 1.0
- Extension control file
- Version 1.0 SQL objects
- Sample preload configuration
online_advisor observes PostgreSQL execution plans and workload timing, then recommends indexes, extended statistics, or prepared statements. It reports candidates only; it never creates an index or statistics object automatically.
Core Workflow
Preload the library and restart PostgreSQL:
Create and activate the extension in each database whose workload should be observed:
After representative workload has run, inspect the recommendations:
Review each generated create_index or create_statistics statement before applying it. Run ANALYZE after creating an index or statistics object so the planner can use current statistics.
Objects and Settings
proposed_indexes: view overpropose_indexes(combine, reset)with filtering volume, call count, elapsed time, and a candidateCREATE INDEXstatement.proposed_statistics: view overpropose_statistics(combine, reset)with misestimation, call count, elapsed time, and a candidateCREATE STATISTICSstatement.get_executor_stats(reset): returns aggregate planning and execution time, query count, and planning-overhead ratios.online_advisor.filtered_threshold: minimum filtered-row count considered for an index proposal; default1000.online_advisor.misestimation_threshold: actual-to-estimated row ratio considered for statistics; default10.online_advisor.min_rows: minimum returned rows for misestimation analysis; default1000.online_advisor.max_index_proposalsandonline_advisor.max_stat_proposals: proposal capacities; set them before the extension is activated.online_advisor.do_instrumentation,online_advisor.log_duration, andonline_advisor.prepare_threshold: control collection and prepared-statement advice.
Caveats
- Instrumentation adds workload overhead; measure it on the target system and disable collection when it is not needed.
- The index heuristic does not reason about operator ordering in compound indexes, join indexes, or indexes used only to avoid sorting.
- The extension does not estimate the benefit of a proposed index. Use plan review or a hypothetical-index tool before building expensive indexes.
- Advice is database-local and depends on the workload observed since activation or reset.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)