Ако имате предвид откриването на "невалидни" (зле създадени) индекси, очевидно Postgres може да се "провали" в опит да създаде индекс и тогава плановщикът на заявки няма да ги използва, въпреки че съществуват във вашата система. Тази заявка ще открие "неуспешни" индекси:
https://www.enterprisedb.com/blog/pgupgrade -bug-invalid-concurrently-created-indexes
SELECT n.nspname, c.relname
FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n,
pg_catalog.pg_index i
WHERE (i.indisvalid = false OR i.indisready = false) AND
i.indexrelid = c.oid AND c.relnamespace = n.oid AND
n.nspname != 'pg_catalog' AND
n.nspname != 'information_schema' AND
n.nspname != 'pg_toast'
въпреки че предполагам, че откриването на индекси на таблици TOAST не би навредило, така че можете да премахнете тази част от заявката :)
Свързано, за мен понякога просто стартирането на нов ANALYZE на таблица също кара индексите внезапно да започнат да се използват в производството (т.е. дори ако индексите не са „невалидни“, те може да са неизползвани до изпълнение на ANALYZE). Странно.