Relation stats: Call pg_stat_get_* directly instead of using system views #512
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to the way how pg_stat_all_tables and pg_statio_all_tables are defined, its significantly more expensive to query through the views when a table filter is in place, since all the data gets pulled, only for the filter to be applied afterwards.
Instead, call the underlying pg_stat_get* functions directly, which has the same effect as querying the views (as they are simple views without any security barrier), and shows a major speedup in cases where a large portion of tables is filtered out. This also should provide a minor speedup in regular operations, even with no table filter in place.