active_record_doctor icon indicating copy to clipboard operation
active_record_doctor copied to clipboard

Reduce the number of queries by caching schema info

Open fatkodima opened this issue 2 years ago • 4 comments

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

fatkodima avatar Jun 16 '22 01:06 fatkodima

With the new PR from rails - https://github.com/rails/rails/pull/45381, this will be even faster for gitlab: 31s.

fatkodima avatar Jun 16 '22 14:06 fatkodima

Renamed the class.

fatkodima avatar Oct 14 '22 13:10 fatkodima

@fatkodima, please rebase and it's good to merge!

gregnavis avatar Dec 07 '22 13:12 gregnavis

@gregnavis Rebased.

fatkodima avatar Dec 07 '22 14:12 fatkodima