Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce the number of queries by caching schema info #101

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

fatkodima
Copy link
Contributor

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
Copy link
Contributor Author

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

lib/active_record_doctor/schema_cache.rb Outdated Show resolved Hide resolved
lib/active_record_doctor/schema_cache.rb Outdated Show resolved Hide resolved
lib/active_record_doctor/schema_cache.rb Outdated Show resolved Hide resolved
@fatkodima
Copy link
Contributor Author

Renamed the class.

@gregnavis
Copy link
Owner

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

@fatkodima
Copy link
Contributor Author

@gregnavis Rebased.

@gregnavis gregnavis force-pushed the master branch 2 times, most recently from 66ef32f to fc73681 Compare January 17, 2023 16:34
@gregnavis gregnavis force-pushed the master branch 2 times, most recently from 168d951 to d322a6e Compare October 20, 2023 14:24
@gregnavis gregnavis added the improvement Pull requests that improve the user experience without introducing new features label Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement Pull requests that improve the user experience without introducing new features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use SchemaCache internally
2 participants