-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Optimize SqlClient rpc parameter usage #34049
Conversation
Merge conflict resolved. This has been open since October last year on the original PR, any chance of getting some feedback? |
Thanks for resolving the conflicts @Wraith2 . We will start looking into this pr soon. |
How soon? |
This PR is on page 3, of 3 in the list. It's been open almost 3 months now with no review, it was open for several months before that on the original PR which was deemed too complex. Can I get some feedback or a decision that this change just isn't going to be approved? I keep running into the performance issues this addresses in other areas of the project and having to ignore them knowing I've already fixed it. |
I am guilty of not monitoring & pushing on stale PRs for a while (like 4+ weeks :(), sorry for that. |
@afsanehr @tarikulsabbir @Gary-Zh any update? |
Hi, Sorry for the delay. I have started looking into this PR. |
src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserHelperClasses.cs
Outdated
Show resolved
Hide resolved
src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs
Outdated
Show resolved
Hide resolved
src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs
Outdated
Show resolved
Hide resolved
@tarikulsabbir @Wraith2 is it blocked only on passing tests? |
As far as I know, just merged to master which will re-run the CI. |
Hi @karelz and @Wraith2 , we are currently running EFCore tests on different platforms. We had a few issues on our test environment which is now resolved. Will update again soon. |
CI failures are valuetuple and linq, unrelated to this change. |
The tests are green. There were a few environmental issues which caused the delay. Anyway I will merge the PR now. Thanks for your patience. |
Optimize SqlClient rpc parameter usage Commit migrated from dotnet/corefx@5458fe2
I have made changes to the _SqlRPC object which change how the system and user parameters are allocated and stored. Originally the system parameters were allocated each execution, I've altered this so the correct number are allocated as needed and re-used cleanly if the query type changes (between prepare, unprepared, proc and exec).
User parameters are no longer copied in but referenced by index into the parameter collection.
This is a risky change. It needs careful review to ensure compatibility.
This PR was split from #32811 and into smaller commits for easier review. It has passed the manual and efcore tests in native mode, the tests cannot be successfully run in managed mode due to #33930 . Performance improvements for this and related PR's are in the original discussion.
/cc @tarikulsabbir, @afsanehr @saurabh500 @David-Engel