PG_STAT_SQL_PLANS is an extension mixing
pg_stat_statements and auto_explain with a planid.
It is implementing many Oracle like features:
- queryid is based on normalized sql text (no jumbling),
- stored query text isn't normalized,
- a text normalization SQL function is provided,
- sql not finished in success (cancelled, timeout, errors) is tracked,
- planid is based on normalized explain plan text,
- explain plan text is saved in logs (as auto_explain do)
but only one time per queryid/planid,
- first_call, last_call informations are kept for each entry,
- provides a SQL function retrieving queryid for a pid
permitting to join pg_stat_activity with pg_stat_sql_plan
- includes specific wait events for planing and extension activities
Some ideas where found in other postgres extensions like pg_store_plans,
pg_stat_plans, ... and patches from pgsql-hackers mailing list.
See https://github.com/legrandlegrand/pg_stat_sql_plans
Feedbacks are welcome
Regards
PAscal