gpt4 book ai didi

c# - SqlConnection支持多少个并发语句

转载 作者:行者123 更新时间:2023-12-03 13:15:00 24 4
gpt4 key购买 nike

C#SqlConnection支持多少个并发语句?

假设我正在运行10个线程的Windows服务。所有线程都使用相同的SqlConnection对象,但使用不同的SqlCommand对象,并对不同的表或相同的表但不同的数据执行选择,插入,更新和删除之类的操作。能行吗一个SqlConnection对象将能够处理10个并发语句吗?

最佳答案

How many concurrent statements does C# SqlConnection support?



从技术上讲,您可以有多个“运行中”语句,但只有一个语句会自动执行。

单个SqlConnection映射到SQL Server中的单个Connection和Session。在Sql Server中,一个 session 一次只能具有一个 Activity 的 request。如果启用MultipeActiveResultsets,则可以在上一个查询完成之前启动一个新查询,但是这些语句是交错的,永远不能并行运行。

MARS enables the interleaved execution of multiple requests within a single connection. That is, it allows a batch to run, and within its execution, it allows other requests to execute. Note, however, that MARS is defined in terms of interleaving, not in terms of parallel execution.





execution can only be switched at well defined points.



https://docs.microsoft.com/en-us/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars?view=sql-server-ver15

因此,您甚至不能保证每当一条语句被阻塞时,另一条语句就会运行。因此,如果要并行运行语句,则需要使用多个SqlConnections。

还要注意,单个查询可能使用并行执行计划,并且有多个 tasks并行运行。

关于c# - SqlConnection支持多少个并发语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61640001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com