The list of all the queries

Unused indexes (2)

Query goal: Find indexes that are not used by the DBMS. Remember that indexes are not a "free lunch" and they slow down the processes of updating data.
Query type: Problem detection (Each row in the result could represent a flaw in the design)
Query reliability: Medium (Medium number of false-positive results)
Query license: MIT License
Fixing suggestion: Remove the unused indexes.
Data source: INFORMATION_SCHEMA+system catalog
SQL query: Click on query to copy it

SELECT schemaname AS table_schema, relname AS table_name, indexrelname AS index_name 
FROM  pg_stat_all_indexes INNER JOIN pg_index USING (indexrelid)
WHERE idx_scan=0
AND schemaname NOT IN (SELECT schema_name
FROM INFORMATION_SCHEMA.schemata
WHERE schema_name<>'public' AND
schema_owner='postgres' AND schema_name IS NOT NULL)
AND indisunique=FALSE
AND indisprimary=FALSE
AND indisexclusion=FALSE
ORDER BY table_schema, table_name, index_name;

SQL statements for generating SQL statements that help us to fix the problem

SQL queryDescription
SELECT format('DROP INDEX %1$I.%2$I;', schemaname, indexrelname) AS statements
FROM  pg_stat_all_indexes INNER JOIN pg_index USING (indexrelid)
WHERE idx_scan=0
AND schemaname NOT IN (SELECT schema_name
FROM INFORMATION_SCHEMA.schemata
WHERE schema_name<>'public' AND
schema_owner='postgres' AND schema_name IS NOT NULL)
AND indisunique=FALSE
AND indisprimary=FALSE
AND indisexclusion=FALSE
ORDER BY schemaname, relname, indexrelname;
Drop the index.

Categories where the query belongs to

Category nameCategory description
Data at the database physical levelQueries of this category provide information about the disk usage.
PerformanceQueries of this category provide information about indexes in a database.

Reference materials for further reading

Reference
https://ottertune.com/blog/yes-postgresql-has-problems-but-we-re-sticking-with-it

The list of all the queries