pg-index-health-sql is a set of sql-queries for analyzing and maintaining indexes and tables health in Postgresql databases.
Compatibility with PostgreSQL versions 10, 11 and 12 is no longer guaranteed, but it is very likely.
We focus only on the currently maintained versions of PostgreSQL.
For more information please see PostgreSQL Versioning Policy.
pg-index-health-sql allows you to detect the following problems:
- Invalid (broken) indexes (sql).
- Duplicated (completely identical) indexes (sql).
- Intersected (partially identical) indexes (sql).
- Unused indexes (sql).
- Foreign keys without associated indexes (sql).
- Indexes with null values (sql).
- Tables with missing indexes (sql).
- Tables without primary key (sql).
- Indexes bloat (sql).
- Tables bloat (sql).
- Tables without description (sql).
- Columns without description (sql).
- Columns with json type (sql).
- Columns of serial types that are not primary keys (sql).
- Functions without description (sql).
- Indexes with boolean (sql).
- Tables with not valid constraints (sql).
- B-tree indexes on array columns (sql).
- Sequence overflow (sql).
- Primary keys with serial types (sql).
- Duplicated (completely identical) foreign keys (sql).
- Intersected (partially identical) foreign keys (sql).
- Objects with possible name overflow (sql).
- Tables not linked to other tables (sql).
- Foreign keys with unmatched column type (sql).
To run super-linter locally:
docker run \
-e RUN_LOCAL=true \
-e USE_FIND_ALGORITHM=true \
-e VALIDATE_SQLFLUFF=true \
-v $(pwd):/tmp/lint \
ghcr.io/super-linter/super-linter:slim-v7.1.0
Use cmd
on Windows:
docker run ^
-e RUN_LOCAL=true ^
-e USE_FIND_ALGORITHM=true ^
-e VALIDATE_SQLFLUFF=true ^
-v "%cd%":/tmp/lint ^
ghcr.io/super-linter/super-linter:slim-v7.1.0
docker run --rm ^
-v "%cd%\.github\linters\.sqlfluff":/sql/.sqlfluff:ro ^
-v "%cd%":/sql ^
-e SQLFLUFF_CONFIG=/sql/.sqlfluff ^
sqlfluff/sqlfluff:3.1.1 lint /sql