perf: exclude streaming data when getting battery level #4286
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.
another performance fix - query detected to be "slow" / having high mean_exec_time via pg_stat_statements.
in difference to other queries the "Battery Level" in "Overview" dashboard is not filtering positions based on selected time range causing a filter over positions_date_index.
adding the condition
ideal_battery_range_km is not null
is ok here, reduces rows to scan drastically.could be further optimized (not neccessary) if adding time range filter to positions subquery, however the value would be empty then if no data recorded in last 24 hours.
i wonder if positions_car_id_index and positions_date_index provide the best value as positions data is filtered by car & date in most cases and indexes cannot be combined. it might be benefitical to change those indexes similary to the change of the positions_drive_id_index in #3186