🐌 Fix performance regression causing Purdue.io front-end timeouts #67
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.
Recently the Purdue.io front-end started showing timeouts when browsing the Class list page for a particular Course.
Investigation revealed expensive SQL queries being generated, taking upwards of a minute to complete. Analysis revealed this section was contributing most of the cost of the query, requiring sequential evaluation of rows from disk:
Further investigation revealed that this was due to pagination logic being applied to the
$expand
operation. An issue is open with a similar repro here: OData/AspNetCoreOData#1041The pagination logic was being applied due to the recent change #65. This PR reverts that change to fix the performance regression until a workaround is provided by the OData library.