Deterministic rule engine Rule engine

Performance rules: indexing and query health

available
Hosted · Startup and above

Redundant indexes, boolean-led indexes, B-tree where GIN belongs, foreign keys losing their covering index, index pile-up on hot tables. Advisory notes that never block unless your policy says so.

The BP family is for migrations that work and then quietly slow you down. Redundant indexes covered by a wider prefix, indexes led by a boolean or near-constant column, B-tree on jsonb, array or tsvector columns, DROP INDEX removing the only index covering a foreign key, one more index on a table already carrying many, composite indexes led by a range column, partial or expression indexes the migration’s own queries cannot use, backfills filtering a large table on unindexed columns, statistics disabled, autovacuum scale factors raised past usefulness, and DROP INDEX on an index the planner is demonstrably using.

They are notes. A note never fails CI unless the team policy says so, the family exists to be read in the PR comment, not to block a merge.

Evidence, not guesses

Several BP rules only fire at all with a live snapshot: index usage counts, table sizes and hot-table traffic come from the catalogs. Three read the migration’s own UPDATE, DELETE and INSERT … SELECT clauses as evidence, never guessing at application queries. No query in the file, no finding.

Try it on your next migration

The CLI is open source and needs no account: npx bolvrk check migration.sql

Also in Deterministic rule engine