perf: add pghero and implement pghero suggestions. Remove unneeded indexes

mciea-main
Nelson Jovel 2 years ago
parent edbb84334a
commit 978942ab34

@ -81,6 +81,9 @@ group :development do
gem "nested_scaffold"
gem "rack-livereload"
# gem 'reek', require: false
gem "dexter"
gem "pghero"
gem "pg_query", ">= 2"
gem "rubocop", require: false
gem "seed_dump"
gem "solargraph-reek"

@ -137,6 +137,8 @@ GEM
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.3.4)
dexter (0.1.0)
trollop
diff-lcs (1.5.0)
docile (1.4.0)
dotenv (2.8.1)
@ -177,6 +179,7 @@ GEM
activerecord (>= 4.0.0)
globalid (1.2.1)
activesupport (>= 6.1)
google-protobuf (3.25.1)
guard (2.18.1)
formatador (>= 0.2.4)
listen (>= 2.7, < 4.0)
@ -283,6 +286,10 @@ GEM
ast (~> 2.4.1)
racc
pg (1.5.4)
pg_query (5.0.0)
google-protobuf (>= 3.22.3)
pghero (3.4.0)
activerecord (>= 6)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
@ -449,6 +456,7 @@ GEM
tilt (2.3.0)
timecop (0.9.8)
timeout (0.4.1)
trollop (2.9.10)
turbo-rails (1.5.0)
actionpack (>= 6.0.0)
activejob (>= 6.0.0)
@ -490,6 +498,7 @@ DEPENDENCIES
cuprite
database_cleaner
devise!
dexter
dotenv-rails
ed25519
erb_lint
@ -509,8 +518,11 @@ DEPENDENCIES
net-sftp
newrelic_rpm
nokogiri
omniauth
parallel_tests
pg
pg_query (>= 2)
pghero
puma (>= 6.4.0)
rack-livereload
rack-mini-profiler

@ -25,7 +25,7 @@ Rails.application.routes.draw do
resources :districts do
resources :schools, only: %i[index show] do
resources :overview, only: [:index]
resources :categories, only: [:show], path: 'browse'
resources :categories, only: [:show], path: "browse"
resources :analyze, only: [:index]
end
end
@ -35,7 +35,11 @@ Rails.application.routes.draw do
get 'users', to: 'legacy/users#show', as: :user_root # Rails 3
end
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
get :reports, to: "reports#index"
get "reports/gps", to: "gps#index"
get '/welcome', to: 'home#index'
root to: 'legacy/welcome#index'
# mount PgHero::Engine, at: "pghero" # remove in development env to see suggestions at localhost:3000/pghero
end

@ -0,0 +1,8 @@
class RemoveUnneededIndexes < ActiveRecord::Migration[7.1]
def change
remove_index :student_races, name: "index_student_races_on_student_id", column: :student_id
remove_index :survey_item_responses, name: "index_survey_item_responses_on_school_id", column: :school_id
remove_index :survey_item_responses, name: "index_survey_item_responses_on_school_id_and_academic_year_id",
column: %i[school_id academic_year_id]
end
end

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.1].define(version: 2023_10_04_211430) do
ActiveRecord::Schema[7.1].define(version: 2023_12_27_183313) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_stat_statements"
enable_extension "plpgsql"
@ -421,7 +421,6 @@ ActiveRecord::Schema[7.1].define(version: 2023_10_04_211430) do
t.datetime "updated_at", null: false
t.index ["race_id"], name: "index_student_races_on_race_id"
t.index ["student_id", "race_id"], name: "index_student_races_on_student_id_and_race_id"
t.index ["student_id"], name: "index_student_races_on_student_id"
end
create_table "students", force: :cascade do |t|
@ -463,9 +462,7 @@ ActiveRecord::Schema[7.1].define(version: 2023_10_04_211430) do
t.index ["income_id"], name: "index_survey_item_responses_on_income_id"
t.index ["response_id"], name: "index_survey_item_responses_on_response_id"
t.index ["school_id", "academic_year_id", "survey_item_id"], name: "by_school_year_and_survey_item"
t.index ["school_id", "academic_year_id"], name: "index_survey_item_responses_on_school_id_and_academic_year_id"
t.index ["school_id", "survey_item_id", "academic_year_id", "grade"], name: "index_survey_responses_on_grade"
t.index ["school_id"], name: "index_survey_item_responses_on_school_id"
t.index ["sped_id"], name: "index_survey_item_responses_on_sped_id"
t.index ["student_id"], name: "index_survey_item_responses_on_student_id"
t.index ["survey_item_id"], name: "index_survey_item_responses_on_survey_item_id"

Loading…
Cancel
Save