Jika Anda merujuk untuk mendeteksi indeks "tidak valid" (dibuat dengan buruk), tampaknya Postgres dapat "gagal" dalam upaya membuat indeks, dan kemudian perencana kueri tidak akan menggunakannya, meskipun ada di sistem Anda. Kueri ini akan mendeteksi indeks "gagal":
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'
meskipun saya kira mendeteksi indeks tabel TOAST tidak ada salahnya, jadi Anda dapat menghapus bagian kueri itu :)
Terkait, bagi saya terkadang hanya menjalankan ANALYZE baru di atas meja juga membuat indeks tiba-tiba mulai digunakan dalam produksi (yaitu bahkan jika indeks tidak "tidak valid" mereka mungkin tidak digunakan sampai ANALYZE berjalan). Aneh.