-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
Allow inline primitive collections with parameters, translating to VALUES #30732
Closed
Tracked by
#30731
Labels
area-perf
area-query
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
type-enhancement
Milestone
Comments
roji
changed the title
Consider not client-evaluating NewArrayExpression in parameter extractor
Consider not client-evaluating NewArrayInitExpression in parameter extractor
Apr 20, 2023
roji
changed the title
Consider not client-evaluating NewArrayInitExpression in parameter extractor
Consider not client-evaluating NewArrayExpression in parameter extractor
Apr 20, 2023
This was referenced Apr 20, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 27, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 27, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 27, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 28, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 28, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 28, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Apr 29, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
changed the title
Consider not client-evaluating NewArrayExpression in parameter extractor
Allow inline primitive collections with parameters, translating to VALUES
May 2, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
May 8, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
May 8, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
May 8, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
May 31, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
May 31, 2023
Closes dotnet#30732 Closes dotnet#30734
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 4, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 6, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 6, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 6, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 6, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 7, 2023
roji
added a commit
to roji/efcore
that referenced
this issue
Jun 13, 2023
ajcvickers
added
the
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
label
Jun 22, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area-perf
area-query
closed-fixed
The issue has been fixed and is/will be included in the release indicated by the issue milestone.
type-enhancement
In the following query:
ParameterExtractingEV client-evaluates the NewArrayExpression (since it contains no server-correlated data), and transforms the entire thing into a single parameter. This causes us to send the following SQL on SQL Server:
Ideally, this LINQ query would be translated to an IN expression with two parameters instead:
This would reproduce the constant array in the original LINQ query, and would give the database the opportunity to optimize for the fact that there are two parameters; it would very likely run faster than the generic OpenJson version, which has the same SQL regardless of the number of parameters.
The main problem here is the change to refrain client-evaluating the NewArrayExpression even though it contains no database-correlated things. Allowing arbitrary expressions in the inline expression (not just constants and parameters) is tracked by #30734.
The text was updated successfully, but these errors were encountered: