2011-12-01 6 views
3

MS SQL Server에서 여러 스레드에서 단일 데이터베이스 연결을 사용하여 읽기 (또는 SELECT 문만 실행)하고 싶습니다. 이 모든 select 문을 다른 스레드에서 동시에 실행할 수 있습니까?단일 데이터베이스 연결을 사용하여 여러 스레드에서 동시에 여러 데이터베이스 선택 문을 실행할 수 있습니까?

Linux 환경에서 C++의 MS SQL Server를 사용하고 있습니다. 별도로 읽고 쓰기위한 데이터베이스 연결 풀을 만들어야합니다. 그래서 내가 읽을 수있는 스레드간에 동일한 연결을 공유하는 가능성을 알고 싶습니다.

select 문은 여러 행 (둘 이상의 행 또는 결과 집합)을 반환 할 수 있습니다. 이것이 문제가됩니까?

답변

4

예 문제가 있습니다. 한 번에 하나의 명령 만 실행할 수 있습니다. 하지만 여러 연결을 사용하면 문제가 없습니다. 연결 풀링은 SQL 서버에 유용합니다.

+0

실제로. 필요한 경우 언제든지 새 연결을 만들 수 있습니다. .Net에서 사용 가능한 연결을 관리하게하십시오. 연결 풀링은 좋은 점입니다. – Amy

+0

Linux 환경에서 C++의 MS SQL Server를 사용하고 있습니다. 별도로 읽고 쓰기위한 데이터베이스 연결 풀을 만들어야합니다. 그래서 내가 읽을 수있는 스레드간에 동일한 연결을 공유하는 가능성을 알고 싶습니다. –

4

스레드간에 동일한 연결을 사용하지 마십시오. 연결 당 하나의 명령 만 실행할 수 있습니다. 각 스레드에 대한 연결을 만듭니다. 이 일을 좀 더 쉽게하기 위해 도우미 클래스를 만드는 것이 좋습니다.

0

나는 읽고 여러 스레드에서 단일 데이터베이스 연결을 사용하려는 당신은 문서를 읽기 시작한다 동시에

에서 MS SQL 서버에서 (또는 유일한 문을 선택 실행합니다)와 재미 가지고 시작하지 아이디어는 여기에서 중요합니다.

네, 할 수 있습니다 (MARS는 주제 - 읽기)하지만 하나의 트랜잭션은 한 트랜잭션 (두 개 이상의 업 사이 트 등)에서 선택하는 것이 좋습니다.) 데이터베이스 연결을 progrmaming하는 일반적인 접근 방식으로 나쁘다.

필요한 조리법을 따르십시오. 필요할 때 언제든지 닫을 수 있습니다. 작업이 끝나면 닫고 여러 연결을 두려워하지 마십시오.

관련 문제