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
Address Query Parsing Performance #4395
base: master
Are you sure you want to change the base?
Conversation
/azp run test-metrics |
Azure Pipelines successfully started running 1 pipeline(s). |
As Info: I merged #4339 in this pull request, cause without the query would not run at all. |
I doubt it makes sense to do anything here before new parser lends. Profiler shows about half of time spent in this method https://github.com/linq2db/linq2db/blob/master/Source/LinqToDB/SqlQuery/SelectQueryOptimizer.cs#L453-L482 |
new parser shows similar numbers currently, but as I said - it's better leave it for later as slow areas will be heavy refactored there |
Test baselines changed by this PR. Don't forget to merge/close baselines PR after this pr merged/closed. |
I like this test. Profiler shows a lot of points to optimize. |
Profiler adds additional delays. Without profiler in Release, whole query is executed under 550-600 milliseconds. Second run with cache hit is 8 msec. There are a lot of ways how to improve SelectQuery optimization and I will make research for new LINQ Translator but after all tests are passed. Not too much left. Note that SelectQuery optimization is fully REWRITTEN, making cardinal changes in current version will be discarded . |
29f8ae8
to
5650440
Compare
@@ -9,6 +9,8 @@ | |||
|
|||
using NUnit.Framework; | |||
|
|||
using static Tests.UserTests.Issue4394Tests; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove that
Tested on V6 Good test for optimizing translator, bad for production. Your goal to kill |
I tried in Release mode.... I did not write this query, also in out software it was only for 3Shelfs, now someone needed it for 10... But for now, we created a view wich we map to the same object. |
Fixes #4394