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. |
Notes about the query: | The query excludes indexes that have been created to enforce a constraint. |
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 query | Description |
---|---|
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. |
Collection name | Collection description |
---|---|
Find problems by overview | Queries that results point to different aspects of database that might have problems. A human reviewer has to decide based on the results as to whether there are problems or not . |
Category name | Category description |
---|---|
Data at the database physical level | Queries of this category provide information about the disk usage. |
Performance | Queries of this category provide information about indexes in a database. |
Reference |
---|
https://ottertune.com/blog/yes-postgresql-has-problems-but-we-re-sticking-with-it |