PgHero
1 long running query 1 walsender
Connections healthy 133
Vacuuming healthy
No columns near integer overflow
No invalid indexes or constraints
93 duplicate indexes
Query stats must be enabled for slow queries

Long Running Queries

We recommend setting a statement timeout on all non-superusers with:

ALTER ROLE <user> SET statement_timeout TO '60s';
Pid Duration State
3155425 00:01:03 active
pg_dump postgres
COPY public.crm_lead_activities_dump (id, created_at, modified_at, state, activity_logs, created_by_user_id, modified_by_user_id, lead_id) TO stdout;

Duplicate Indexes

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

rails generate migration remove_unneeded_indexes

And paste

remove_index :admission_season, name: "idx_admission_season_account_id", column: :account_id
remove_index :admission_season, name: "idx_admission_season_institute_id", column: :institute_id
remove_index :admissions_repository, name: "idx_admissions_repository_account_id", column: :account_id
remove_index :agent, name: "idx_agent_account_id", column: :account_id
remove_index :agent_contractual_documents, name: "idx_agent_contractual_documents_account_id", column: :account_id
remove_index :batch_job_execution_context, name: "batch_job_execution_context_job_execution_id_fkey_idx", column: :job_execution_id
remove_index :batch_step_execution_context, name: "batch_step_execution_context_step_execution_id_fkey_idx", column: :step_execution_id
remove_index :campaign, name: "campaign_account_id_fkey_idx", column: :account_id
remove_index :campaign, name: "idx_campaign_account_id", column: :account_id
remove_index :campaign, name: "idx_campaign_admission_season", column: :admission_season_id
remove_index :campaign, name: "idx_campaign_admission_season_id", column: :admission_season_id
remove_index :campaign, name: "idx_campaign_channel", column: :channel_id
remove_index :campaign, name: "idx_campaign_channel_id", column: :channel_id
remove_index :campaign_rule, name: "idx_campaign_rule_account_id", column: :account_id
remove_index :channel, name: "idx_channel_account_id", column: :account_id
remove_index :dashlet_default_config_settings, name: "idx_dashlet_default_config_settings_account_id", column: :account_id
remove_index :dashlet_default_config_settings, name: "dashlet_default_config_settings_institute_id_fkey_idx", column: :institute_id
remove_index :expense, name: "idx_expense_account_id", column: :account_id
remove_index :expense, name: "expense_campaign_id_fkey_idx", column: :campaign_id
remove_index :field_mapping, name: "field_mapping_connector_id_fkey_idx", column: :connector_id
remove_index :institute, name: "institute_account_id_fkey_idx", column: :account_id
remove_index :landing_page, name: "landing_page_account_id_fkey_idx", column: :account_id
remove_index :lead, name: "lead_account_id_fkey_idx", column: :account_id
remove_index :lead, name: "lead_admission_season_id_fkey_idx", column: :admission_season_id
remove_index :lead, name: "idx_lead_status_id", column: :lead_status_id
remove_index :lead, name: "lead_lead_status_id_fkey_idx", column: :lead_status_id
remove_index :lead, name: "idx_platform_identifier", column: :platform_identifier
remove_index :lead, name: "idx_lead_registration_date", column: :platform_registration_date
remove_index :lead, name: "lead_program_id_fkey_idx", column: :program_id
remove_index :lead_connector_sync_record, name: "lead_connector_sync_record_lead_id_fkey_idx", column: :lead_id
remove_index :lead_counsellor_assignment, name: "idx_lead_counsellor_assignment_account_id", column: :account_id
remove_index :lead_counsellor_assignment, name: "idx_lead_counsellor_assignment_id_account", column: [:id, :account_id]
remove_index :lead_field_value, name: "lead_field_value_account_id_fkey_idx", column: :account_id
remove_index :lead_field_value, name: "idx_lead_field_value_lead_id", column: :lead_id
remove_index :lead_field_value, name: "lead_field_value_lead_id_fkey_idx", column: :lead_id
remove_index :lead_field_value, name: "idx_lead_field_value_lead_field", column: [:lead_id, :lead_template_field_id]
remove_index :lead_program, name: "lead_program_account_id_fkey_idx", column: :account_id
remove_index :lead_status, name: "lead_status_account_id_fkey_idx", column: :account_id
remove_index :lead_status_history, name: "lead_status_history_account_id_fkey_idx", column: :account_id
remove_index :lead_status_history, name: "lead_status_history_lead_id_fkey_idx", column: :lead_id
remove_index :lead_status_history, name: "idx_lead_status_history_lead_status_id", column: :lead_status_id
remove_index :lead_status_history, name: "lead_status_history_lead_status_id_fkey_idx", column: :lead_status_id
remove_index :lead_template, name: "lead_template_account_id_fkey_idx", column: :account_id
remove_index :lead_template_field, name: "lead_template_field_account_id_fkey_idx", column: :account_id
remove_index :lead_utm_history, name: "lead_utm_history_account_id_fkey_idx", column: :account_id
remove_index :lead_utm_history, name: "idx_lead_utm_history_campaign", column: :campaign_id
remove_index :lead_utm_history, name: "idx_lead_utm_history_campaign_id", column: :campaign_id
remove_index :lead_utm_history, name: "lead_utm_history_campaign_id_fkey_idx", column: :campaign_id
remove_index :lead_utm_history, name: "idx_lead_utm_history_lead_id", column: :lead_id
remove_index :lead_utm_history, name: "idx_lead_utm_history_lead", column: :lead_id
remove_index :lead_utm_history, name: "lead_utm_history_lead_id_fkey_idx", column: :lead_id
remove_index :lead_utm_history, name: "idx_lead_utm_history_lead_campaign", column: [:lead_id, :campaign_id]
remove_index :lead_utm_history, name: "idx_lead_utm_history_sequence_order", column: :sequence_order
remove_index :opportunity, name: "opportunity_account_id_fkey_idx", column: :account_id
remove_index :opportunity, name: "idx_opportunity_account_id", column: :account_id
remove_index :opportunity, name: "idx_opportunity_lead_id", column: :lead_id
remove_index :opportunity, name: "idx_opportunity_lead", column: :lead_id
remove_index :opportunity, name: "opportunity_lead_id_fkey_idx", column: :lead_id
remove_index :opportunity, name: "opportunity_opportunity_status_id_fkey_idx", column: :opportunity_status_id
remove_index :opportunity, name: "opportunity_opportunity_template_id_fkey_idx", column: :opportunity_template_id
remove_index :opportunity, name: "idx_opportunity_program_id", column: :program_id
remove_index :opportunity, name: "opportunity_program_id_fkey_idx", column: :program_id
remove_index :opportunity_connector_sync_record, name: "opportunity_connector_sync_record_opportunity_id_fkey_idx", column: :opportunity_id
remove_index :opportunity_field_value, name: "opportunity_field_value_account_id_fkey_idx", column: :account_id
remove_index :opportunity_program, name: "opportunity_program_account_id_fkey_idx", column: :account_id
remove_index :opportunity_status, name: "opportunity_status_account_id_fkey_idx", column: :account_id
remove_index :opportunity_status, name: "opportunity_status_institute_id_fkey_idx", column: :institute_id
remove_index :opportunity_status, name: "opportunity_status_parent_status_id_fkey_idx", column: :parent_status_id
remove_index :opportunity_status_history, name: "opportunity_status_history_account_id_fkey_idx", column: :account_id
remove_index :opportunity_status_history, name: "opportunity_status_history_opportunity_id_fkey_idx", column: :opportunity_id
remove_index :opportunity_status_history, name: "opportunity_status_history_opportunity_status_id_fkey_idx", column: :opportunity_status_id
remove_index :opportunity_template, name: "opportunity_template_account_id_fkey_idx", column: :account_id
remove_index :opportunity_template_field, name: "opportunity_template_field_account_id_fkey_idx", column: :account_id
remove_index :outreach_calendar, name: "outreach_calendar_account_id_fkey_idx", column: :account_id
remove_index :outreach_event, name: "outreach_event_account_id_fkey_idx", column: :account_id
remove_index :outreach_event_document, name: "outreach_event_document_account_id_fkey_idx", column: :account_id
remove_index :program, name: "program_account_id_fkey_idx", column: :account_id
remove_index :smart_link, name: "smart_link_account_id_fkey_idx", column: :account_id
remove_index :smart_link_click, name: "smart_link_click_account_id_fkey_idx", column: :account_id
remove_index :upload_job_log, name: "upload_job_log_account_id_fkey_idx", column: :account_id
remove_index :user_roles, name: "user_roles_account_id_fkey_idx", column: :account_id
remove_index :users, name: "users_account_id_fkey_idx", column: :account_id
remove_index :users, name: "users_agent_id_fkey_idx", column: :agent_id
remove_index :xref_agent_campaign, name: "xref_agent_campaign_agent_id_fkey_idx", column: :agent_id
remove_index :xref_agent_institute, name: "xref_agent_institute_agent_id_fkey_idx", column: :agent_id
remove_index :xref_agent_repository, name: "xref_agent_repository_agent_id_fkey_idx", column: :agent_id
remove_index :xref_campaign_landing_page, name: "xref_campaign_landing_page_landing_page_id_fkey_idx", column: :landing_page_id
remove_index :xref_landing_page_programs, name: "xref_landing_page_programs_landing_page_id_fkey_idx", column: :landing_page_id
remove_index :xref_outreach_event_campaign, name: "xref_outreach_event_campaign_campaign_id_fkey_idx", column: :campaign_id
remove_index :xref_outreach_event_campaign, name: "xref_outreach_event_campaign_outreach_event_id_fkey_idx", column: :outreach_event_id
remove_index :xref_outreach_event_institute, name: "xref_outreach_event_institute_institute_id_fkey_idx", column: :institute_id
remove_index :xref_outreach_event_user, name: "xref_outreach_event_user_outreach_event_id_fkey_idx", column: :outreach_event_id
remove_index :xref_outreach_event_user, name: "idx_outreach_event_user", column: [:outreach_event_id, :user_id]
Details
On admission_season
idx_admission_season_account_id (account_id)
is covered by
admission_season_account_id_fkey_idx (account_id)
On admission_season
idx_admission_season_institute_id (institute_id)
is covered by
admission_season_institute_id_fkey_idx (institute_id)
On admissions_repository
idx_admissions_repository_account_id (account_id)
is covered by
admissions_repository_account_id_fkey_idx (account_id)
On agent
idx_agent_account_id (account_id)
is covered by
agent_account_id_fkey_idx (account_id)
On agent_contractual_documents
idx_agent_contractual_documents_account_id (account_id)
is covered by
agent_contractual_documents_account_id_fkey_idx (account_id)
On batch_job_execution_context
batch_job_execution_context_job_execution_id_fkey_idx (job_execution_id)
is covered by
batch_job_execution_context_pkey (job_execution_id)
On batch_step_execution_context
batch_step_execution_context_step_execution_id_fkey_idx (step_execution_id)
is covered by
batch_step_execution_context_pkey (step_execution_id)
On campaign
campaign_account_id_fkey_idx (account_id)
is covered by
idx_campaign_account_date_channel (account_id, channel_id, start_date, end_date)
On campaign
idx_campaign_account_id (account_id)
is covered by
campaign_account_id_fkey_idx (account_id)
On campaign
idx_campaign_admission_season (admission_season_id)
is covered by
campaign_admission_season_id_fkey_idx (admission_season_id)
On campaign
idx_campaign_admission_season_id (admission_season_id)
is covered by
campaign_admission_season_id_fkey_idx (admission_season_id)
On campaign
idx_campaign_channel (channel_id)
is covered by
campaign_channel_id_fkey_idx (channel_id)
On campaign
idx_campaign_channel_id (channel_id)
is covered by
campaign_channel_id_fkey_idx (channel_id)
On campaign_rule
idx_campaign_rule_account_id (account_id)
is covered by
campaign_rule_account_id_fkey_idx (account_id)
On channel
idx_channel_account_id (account_id)
is covered by
channel_account_id_fkey_idx (account_id)
On dashlet_default_config_settings
idx_dashlet_default_config_settings_account_id (account_id)
is covered by
dashlet_default_config_settings_account_id_fkey_idx (account_id)
On dashlet_default_config_settings
dashlet_default_config_settings_institute_id_fkey_idx (institute_id)
is covered by
ukdud150lp1je1p6po5nk8e4g4v (institute_id, type)
On expense
idx_expense_account_id (account_id)
is covered by
expense_account_id_fkey_idx (account_id)
On expense
expense_campaign_id_fkey_idx (campaign_id)
is covered by
idx_expense_campaign_date (campaign_id, date)
On field_mapping
field_mapping_connector_id_fkey_idx (connector_id)
is covered by
field_mapping_connector_id_key (connector_id)
On institute
institute_account_id_fkey_idx (account_id)
is covered by
idx_institute_account_id (account_id)
On landing_page
landing_page_account_id_fkey_idx (account_id)
is covered by
idx_landing_page_account_id (account_id)
On lead
lead_account_id_fkey_idx (account_id)
is covered by
idx_lead_account_date_status (account_id, platform_registration_date, lead_status_id)
On lead
lead_admission_season_id_fkey_idx (admission_season_id)
is covered by
idx_lead_admission_season (admission_season_id)
On lead
idx_lead_status_id (lead_status_id)
is covered by
idx_lead_lead_status_id (lead_status_id)
On lead
lead_lead_status_id_fkey_idx (lead_status_id)
is covered by
idx_lead_lead_status_id (lead_status_id)
On lead
idx_platform_identifier (platform_identifier)
is covered by
idx_lead_platform_identifier (platform_identifier)
On lead
idx_lead_registration_date (platform_registration_date)
is covered by
idx_lead_platform_registration_date (platform_registration_date)
On lead
lead_program_id_fkey_idx (program_id)
is covered by
idx_lead_program_id (program_id)
On lead_connector_sync_record
lead_connector_sync_record_lead_id_fkey_idx (lead_id)
is covered by
ukjafuvw3l5c5a9xyf82otj3nnj (lead_id)
On lead_counsellor_assignment
idx_lead_counsellor_assignment_account_id (account_id)
is covered by
idx_lead_agent_assignment_account_id (account_id)
On lead_counsellor_assignment
idx_lead_counsellor_assignment_id_account (id, account_id)
is covered by
idx_lead_agent_assignment_id_account (id, account_id)
On lead_field_value
lead_field_value_account_id_fkey_idx (account_id)
is covered by
idx_lead_field_value_account_id (account_id)
On lead_field_value
idx_lead_field_value_lead_id (lead_id)
is covered by
idx_lead_field_value_lead_field (lead_id, lead_template_field_id)
On lead_field_value
lead_field_value_lead_id_fkey_idx (lead_id)
is covered by
idx_lead_field_value_lead_field (lead_id, lead_template_field_id)
On lead_field_value
idx_lead_field_value_lead_field (lead_id, lead_template_field_id)
is covered by
uq_lead_field_value_lead_template_field (lead_id, lead_template_field_id)
On lead_program
lead_program_account_id_fkey_idx (account_id)
is covered by
idx_lead_program_account_id (account_id)
On lead_status
lead_status_account_id_fkey_idx (account_id)
is covered by
idx_lead_status_account_id (account_id)
On lead_status_history
lead_status_history_account_id_fkey_idx (account_id)
is covered by
idx_lead_status_history_account_id (account_id)
On lead_status_history
lead_status_history_lead_id_fkey_idx (lead_id)
is covered by
unique_lead_status (lead_id, lead_status_id)
On lead_status_history
idx_lead_status_history_lead_status_id (lead_status_id)
is covered by
idx_lead_status_history_status (lead_status_id, created_at)
On lead_status_history
lead_status_history_lead_status_id_fkey_idx (lead_status_id)
is covered by
idx_lead_status_history_lead_status_id (lead_status_id)
On lead_template
lead_template_account_id_fkey_idx (account_id)
is covered by
idx_lead_template_account_id (account_id)
On lead_template_field
lead_template_field_account_id_fkey_idx (account_id)
is covered by
idx_lead_template_field_account_id (account_id)
On lead_utm_history
lead_utm_history_account_id_fkey_idx (account_id)
is covered by
idx_lead_utm_history_account_id (account_id)
On lead_utm_history
idx_lead_utm_history_campaign (campaign_id)
is covered by
idx_lead_utm_campaign_sequence (campaign_id, sequence_order)
On lead_utm_history
idx_lead_utm_history_campaign_id (campaign_id)
is covered by
idx_lead_utm_campaign_sequence (campaign_id, sequence_order)
On lead_utm_history
lead_utm_history_campaign_id_fkey_idx (campaign_id)
is covered by
idx_lead_utm_campaign_sequence (campaign_id, sequence_order)
On lead_utm_history
idx_lead_utm_history_lead_id (lead_id)
is covered by
idx_lead_utm_history_lead (lead_id)
On lead_utm_history
idx_lead_utm_history_lead (lead_id)
is covered by
idx_lead_utm_history_lead_campaign (lead_id, campaign_id)
On lead_utm_history
lead_utm_history_lead_id_fkey_idx (lead_id)
is covered by
idx_lead_utm_history_lead (lead_id)
On lead_utm_history
idx_lead_utm_history_lead_campaign (lead_id, campaign_id)
is covered by
idx_lead_utm_lead_campaign_sequence (lead_id, campaign_id, sequence_order)
On lead_utm_history
idx_lead_utm_history_sequence_order (sequence_order)
is covered by
idx_lead_utm_history_sequence (sequence_order)
On opportunity
opportunity_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_account_date_status (account_id, platform_registration_date, opportunity_status_id)
On opportunity
idx_opportunity_account_id (account_id)
is covered by
idx_opportunity_account_date_status (account_id, platform_registration_date, opportunity_status_id)
On opportunity
idx_opportunity_lead_id (lead_id)
is covered by
idx_opportunity_lead_status (lead_id, opportunity_status_id)
On opportunity
idx_opportunity_lead (lead_id)
is covered by
idx_opportunity_lead_status (lead_id, opportunity_status_id)
On opportunity
opportunity_lead_id_fkey_idx (lead_id)
is covered by
idx_opportunity_lead_status (lead_id, opportunity_status_id)
On opportunity
opportunity_opportunity_status_id_fkey_idx (opportunity_status_id)
is covered by
idx_opportunity_status_id (opportunity_status_id)
On opportunity
opportunity_opportunity_template_id_fkey_idx (opportunity_template_id)
is covered by
idx_opportunity_template_id (opportunity_template_id)
On opportunity
idx_opportunity_program_id (program_id)
is covered by
idx_opportunity_program (program_id)
On opportunity
opportunity_program_id_fkey_idx (program_id)
is covered by
idx_opportunity_program_id (program_id)
On opportunity_connector_sync_record
opportunity_connector_sync_record_opportunity_id_fkey_idx (opportunity_id)
is covered by
uka0qnhgunn2vhsl10hxqhy33sm (opportunity_id)
On opportunity_field_value
opportunity_field_value_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_field_value_account_id (account_id)
On opportunity_program
opportunity_program_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_program_account_id (account_id)
On opportunity_status
opportunity_status_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_status_account_id (account_id)
On opportunity_status
opportunity_status_institute_id_fkey_idx (institute_id)
is covered by
idx_opportunity_status_institute (institute_id)
On opportunity_status
opportunity_status_parent_status_id_fkey_idx (parent_status_id)
is covered by
idx_opportunity_status_parent (parent_status_id)
On opportunity_status_history
opportunity_status_history_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_status_history_account_id (account_id)
On opportunity_status_history
opportunity_status_history_opportunity_id_fkey_idx (opportunity_id)
is covered by
idx_opportunity_status_history_opportunity (opportunity_id)
On opportunity_status_history
opportunity_status_history_opportunity_status_id_fkey_idx (opportunity_status_id)
is covered by
idx_opportunity_status_history_status (opportunity_status_id)
On opportunity_template
opportunity_template_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_template_account_id (account_id)
On opportunity_template_field
opportunity_template_field_account_id_fkey_idx (account_id)
is covered by
idx_opportunity_template_field_account_id (account_id)
On outreach_calendar
outreach_calendar_account_id_fkey_idx (account_id)
is covered by
idx_outreach_calendar_account_id (account_id)
On outreach_event
outreach_event_account_id_fkey_idx (account_id)
is covered by
idx_outreach_event_account_id (account_id)
On outreach_event_document
outreach_event_document_account_id_fkey_idx (account_id)
is covered by
idx_outreach_event_document_account_id (account_id)
On program
program_account_id_fkey_idx (account_id)
is covered by
idx_program_account_id (account_id)
On smart_link
smart_link_account_id_fkey_idx (account_id)
is covered by
idx_smart_link_account_id (account_id)
On smart_link_click
smart_link_click_account_id_fkey_idx (account_id)
is covered by
idx_smart_link_click_account_id (account_id)
On upload_job_log
upload_job_log_account_id_fkey_idx (account_id)
is covered by
idx_upload_job_log_account_id (account_id)
On user_roles
user_roles_account_id_fkey_idx (account_id)
is covered by
idx_user_roles_account_id (account_id)
On users
users_account_id_fkey_idx (account_id)
is covered by
idx_users_account_id (account_id)
On users
users_agent_id_fkey_idx (agent_id)
is covered by
users_agent_id_key (agent_id)
On xref_agent_campaign
xref_agent_campaign_agent_id_fkey_idx (agent_id)
is covered by
idx_agent_campaign (agent_id, campaign_id)
On xref_agent_institute
xref_agent_institute_agent_id_fkey_idx (agent_id)
is covered by
idx_agent_institute (agent_id, institute_id)
On xref_agent_repository
xref_agent_repository_agent_id_fkey_idx (agent_id)
is covered by
idx_agent_repository (agent_id, repository_id)
On xref_campaign_landing_page
xref_campaign_landing_page_landing_page_id_fkey_idx (landing_page_id)
is covered by
idx_campaign_landing_page (landing_page_id, campaign_id)
On xref_landing_page_programs
xref_landing_page_programs_landing_page_id_fkey_idx (landing_page_id)
is covered by
idx_landing_page_programs (landing_page_id, program_id)
On xref_outreach_event_campaign
xref_outreach_event_campaign_campaign_id_fkey_idx (campaign_id)
is covered by
xref_outreach_event_campaign_pkey (campaign_id, outreach_event_id)
On xref_outreach_event_campaign
xref_outreach_event_campaign_outreach_event_id_fkey_idx (outreach_event_id)
is covered by
idx_outreach_event_campaign (outreach_event_id, campaign_id)
On xref_outreach_event_institute
xref_outreach_event_institute_institute_id_fkey_idx (institute_id)
is covered by
xref_outreach_event_institute_pkey (institute_id, outreach_event_id)
On xref_outreach_event_user
xref_outreach_event_user_outreach_event_id_fkey_idx (outreach_event_id)
is covered by
xref_outreach_event_user_pkey (outreach_event_id, user_id)
On xref_outreach_event_user
idx_outreach_event_user (outreach_event_id, user_id)
is covered by
xref_outreach_event_user_pkey (outreach_event_id, user_id)

Query Stats

Make them available by adding the following lines to postgresql.conf:

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

Restart the server for the changes to take effect.