我们可以使用单个数据库连接同时从多个线程执行多个数据库选择语句吗?

时间:2011-12-01 14:47:50

标签: sql-server database multithreading

我想使用来自多个线程的单个数据库连接来同时在MS SQL Server中读取(或仅执行select语句)。是否可以同时从不同的线程执行所有这些select语句。

我在Linux环境中使用C ++中的MS SQL Server。我需要创建数据库连接池以分别进行读写。所以我想知道是否有可能在线程之间共享相同的连接以进行只读。

select语句可能返回多行(多行或结果集)。这会有问题吗?

3 个答案:

答案 0 :(得分:4)

是的,会有问题。一次只能执行一个命令。 但是你可以使用多个连接,连接池对SQL服务器很有用。

答案 1 :(得分:4)

不要在线程之间使用相同的连接。每个连接只能执行一个命令。为每个线程创建连接。我建议你做一个辅助课,让你更容易。

答案 2 :(得分:0)

  

我想使用来自多个线程的单个数据库连接来读取(或仅执行select   同时在MS SQL Server中的语句

你应该开始阅读文档而不是开始有你想要的有趣想法。

是的,你可以这样做(MARS是主题 - 读它)但是一个连接也可以有一个事务上下文,所以它是一个很好的方法来在一个事务中多次选择(插入,几个upsert等)但作为编程数据库连接的通用方法很糟糕。

按照食谱意味着在需要时打开一个连接,完成后关闭它,不要害怕运行多个连接。

相关问题