PgHero
No long running queries
Connections healthy 24
Vacuuming healthy
No columns near integer overflow
No invalid indexes or constraints
53 duplicate indexes
Query stats must be enabled for slow queries

Duplicate Indexes

These indexes exist, but aren’t needed. Remove them for faster writes.

rails generate migration remove_unneeded_indexes

And paste

remove_index :_hyper_1_10_chunk, name: "_hyper_1_10_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_10_chunk, name: "_hyper_1_10_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_11_chunk, name: "_hyper_1_11_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_11_chunk, name: "_hyper_1_11_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_12_chunk, name: "_hyper_1_12_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_12_chunk, name: "_hyper_1_12_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_13_chunk, name: "_hyper_1_13_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_13_chunk, name: "_hyper_1_13_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_14_chunk, name: "_hyper_1_14_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_14_chunk, name: "_hyper_1_14_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_15_chunk, name: "_hyper_1_15_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_15_chunk, name: "_hyper_1_15_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_16_chunk, name: "_hyper_1_16_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_16_chunk, name: "_hyper_1_16_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_17_chunk, name: "_hyper_1_17_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_17_chunk, name: "_hyper_1_17_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_19_chunk, name: "_hyper_1_19_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_19_chunk, name: "_hyper_1_19_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_1_chunk, name: "_hyper_1_1_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_1_chunk, name: "_hyper_1_1_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_20_chunk, name: "_hyper_1_20_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_20_chunk, name: "_hyper_1_20_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_21_chunk, name: "_hyper_1_21_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_21_chunk, name: "_hyper_1_21_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_2_chunk, name: "_hyper_1_2_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_2_chunk, name: "_hyper_1_2_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_3_chunk, name: "_hyper_1_3_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_3_chunk, name: "_hyper_1_3_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_4_chunk, name: "_hyper_1_4_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_4_chunk, name: "_hyper_1_4_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_54_chunk, name: "_hyper_1_54_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_54_chunk, name: "_hyper_1_54_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_55_chunk, name: "_hyper_1_55_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_55_chunk, name: "_hyper_1_55_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_56_chunk, name: "_hyper_1_56_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_56_chunk, name: "_hyper_1_56_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_5_chunk, name: "_hyper_1_5_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_5_chunk, name: "_hyper_1_5_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_6_chunk, name: "_hyper_1_6_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_6_chunk, name: "_hyper_1_6_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_7_chunk, name: "_hyper_1_7_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_7_chunk, name: "_hyper_1_7_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_8_chunk, name: "_hyper_1_8_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_8_chunk, name: "_hyper_1_8_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_1_9_chunk, name: "_hyper_1_9_chunk_idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :_hyper_1_9_chunk, name: "_hyper_1_9_chunk_idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :_hyper_4_18_chunk, name: "_hyper_4_18_chunk_idx_billing_records_wallet_address", column: :wallet_address
remove_index :admins, name: "idx_admins_email", column: :email
remove_index :billing_records, name: "idx_billing_records_wallet_address", column: :wallet_address
remove_index :chunk, name: "chunk_hypertable_id_idx", column: :hypertable_id
remove_index :tenant_usage, name: "idx_tenant_usage_wallet_address", column: :wallet_address
remove_index :tenant_usage, name: "idx_tenant_usage_wallet_address_ts", column: [:wallet_address, :ts]
remove_index :tenants, name: "idx_tenants_email", column: :email
Details
On _hyper_1_10_chunk
_hyper_1_10_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_10_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_10_chunk
_hyper_1_10_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
10_19_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_11_chunk
_hyper_1_11_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_11_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_11_chunk
_hyper_1_11_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
11_21_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_12_chunk
_hyper_1_12_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
12_23_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_12_chunk
_hyper_1_12_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
12_23_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_13_chunk
_hyper_1_13_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
13_25_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_13_chunk
_hyper_1_13_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
13_25_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_14_chunk
_hyper_1_14_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
14_27_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_14_chunk
_hyper_1_14_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
14_27_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_15_chunk
_hyper_1_15_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_15_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_15_chunk
_hyper_1_15_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
15_29_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_16_chunk
_hyper_1_16_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_16_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_16_chunk
_hyper_1_16_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
16_31_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_17_chunk
_hyper_1_17_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_17_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_17_chunk
_hyper_1_17_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
17_33_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_19_chunk
_hyper_1_19_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
19_37_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_19_chunk
_hyper_1_19_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
19_37_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_1_chunk
_hyper_1_1_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_1_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_1_chunk
_hyper_1_1_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
1_1_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_20_chunk
_hyper_1_20_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_20_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On _hyper_1_20_chunk
_hyper_1_20_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
20_39_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_21_chunk
_hyper_1_21_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
21_41_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_21_chunk
_hyper_1_21_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
21_41_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_2_chunk
_hyper_1_2_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_2_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On _hyper_1_2_chunk
_hyper_1_2_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
2_3_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_3_chunk
_hyper_1_3_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
3_5_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_3_chunk
_hyper_1_3_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
3_5_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_4_chunk
_hyper_1_4_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
4_7_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_4_chunk
_hyper_1_4_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
4_7_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_54_chunk
_hyper_1_54_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_54_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On _hyper_1_54_chunk
_hyper_1_54_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
54_74_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_55_chunk
_hyper_1_55_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_55_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_55_chunk
_hyper_1_55_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
55_76_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_56_chunk
_hyper_1_56_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_56_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On _hyper_1_56_chunk
_hyper_1_56_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
56_78_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_5_chunk
_hyper_1_5_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_5_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On _hyper_1_5_chunk
_hyper_1_5_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
5_9_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_6_chunk
_hyper_1_6_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_6_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On _hyper_1_6_chunk
_hyper_1_6_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
6_11_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_7_chunk
_hyper_1_7_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
7_13_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_7_chunk
_hyper_1_7_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
7_13_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_8_chunk
_hyper_1_8_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_8_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_8_chunk
_hyper_1_8_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
8_15_tenant_usage_pkey (wallet_address, ts)
On _hyper_1_9_chunk
_hyper_1_9_chunk_idx_tenant_usage_wallet_address (wallet_address)
is covered by
_hyper_1_9_chunk_idx_tenant_usage_wallet_address_plan_at_time (wallet_address, plan_at_time)
On _hyper_1_9_chunk
_hyper_1_9_chunk_idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
9_17_tenant_usage_pkey (wallet_address, ts)
On _hyper_4_18_chunk
_hyper_4_18_chunk_idx_billing_records_wallet_address (wallet_address)
is covered by
18_35_billing_records_pkey (wallet_address, start_date)
On admins
idx_admins_email (email)
is covered by
admins_email_key (email)
On billing_records
idx_billing_records_wallet_address (wallet_address)
is covered by
billing_records_pkey (wallet_address, start_date)
On chunk
chunk_hypertable_id_idx (hypertable_id)
is covered by
chunk_hypertable_id_creation_time_idx (hypertable_id, creation_time)
On tenant_usage
idx_tenant_usage_wallet_address (wallet_address)
is covered by
idx_tenant_usage_wallet_address_ts (wallet_address, ts)
On tenant_usage
idx_tenant_usage_wallet_address_ts (wallet_address, ts)
is covered by
tenant_usage_pkey (wallet_address, ts)
On tenants
idx_tenants_email (email)
is covered by
tenants_email_key (email)

Query Stats

Query stats are available but not enabled.