active_record_doctor
active_record_doctor copied to clipboard
Reduce the number of queries by caching schema info
Fixes #99.
I was able to run active_record_doctor
on 2 OSS projects: discourse
(medium sized) and gitlab
(large sized).
Discourse
Before
Num of queries: 6771
Runtime of active_record_doctor
(checks only, not including app eager loading): 8.53s
Total runtime (of the rake active_record_doctor
): 15.74s
After
Num of queries: 1739
Runtime of active_record_doctor
: 2.55s
🔥
Total runtime : 9.3s
Gitlab
Before
Num of queries: 31499
Runtime of active_record_doctor
: 125.9s
Total runtime: 2:36.17m
After
Num of queries: 10697
Runtime of active_record_doctor
: 38.53s
🔥 🔥 🔥
Total runtime: 1:13.80m
With the new PR from rails - https://github.com/rails/rails/pull/45381, this will be even faster for gitlab: 31s
.
Renamed the class.
@fatkodima, please rebase and it's good to merge!
@gregnavis Rebased.