Duplicate Indexes
These indexes exist, but aren’t needed. Remove them
for faster writes.
rails generate migration remove_unneeded_indexes
And paste
remove_index :chunk, name: "chunk_hypertable_id_idx", column: :hypertable_id
remove_index :tickets, name: "tickets_category_idx", column: :category
remove_index :tickets, name: "tickets_status_idx", column: :status
| Details |
On chunk
chunk_hypertable_id_idx (hypertable_id)
is covered by
chunk_hypertable_id_creation_time_idx (hypertable_id, creation_time)
|
On tickets
tickets_category_idx (category)
is covered by
tickets_category_created_at_idx (category, createdAt)
|
On tickets
tickets_status_idx (status)
is covered by
tickets_status_created_at_idx (status, createdAt)
|
Slow Queries
Slow queries take 20 ms or more on average and have been called at least 100 times.
Explain queries to see where to add indexes.
| Total Time |
Average Time |
Calls |
|
0 min
4%
|
48 ms
|
417
unnichat
|
WITH query_stats AS ( SELECT LEFT(query, $1) AS query, queryid AS query_hash, rolname AS user, ((total_plan_time + total_exec_time) / $2 / $3) AS total_minutes, ((total_plan_time + total_exec_time) / calls) AS average_time, calls FROM pg_stat_statements INNER JOIN pg_database ON pg_database.oid = pg_stat_statements.dbid INNER JOIN pg_roles ON pg_roles.oid = pg_stat_statements.userid WHERE calls > $4 AND pg_database.datname = current_database() ) SELECT query, query AS explainable_query, query_hash, query_stats.user, total_minutes, average_time, calls, total_minutes * $5 / (SELECT SUM(total_minutes) FROM query_stats) AS total_percent, (SELECT SUM(total_minutes) FROM query_stats) AS all_queries_total_minutes FROM query_stats ORDER BY "total_minutes" DESC LIMIT $6 /*pghero*/
|
|
0 min
2%
|
26 ms
|
426
unnichat
|
SELECT schemaname AS schema, t.relname AS table, ix.relname AS name, regexp_replace(pg_get_indexdef(i.indexrelid), $1, $2) AS columns, regexp_replace(pg_get_indexdef(i.indexrelid), $3, $4) AS using, indisunique AS unique, indisprimary AS primary, indisvalid AS valid, indexprs::text, indpred::text, pg_get_indexdef(i.indexrelid) AS definition FROM pg_index i INNER JOIN pg_class t ON t.oid = i.indrelid INNER JOIN pg_class ix ON ix.oid = i.indexrelid LEFT JOIN pg_stat_user_indexes ui ON ui.indexrelid = i.indexrelid WHERE schemaname IS NOT NULL ORDER BY 1, 2 /*pghero*/
|