[c#] MultipleActiveResultSets = 참 또는 다중 연결?

연결 ( ExecuteReader)에서 리더를 만든 다음 해당 리더의 모든 행에 대해 다른 명령 (사용 ExecuteNonQuery)을 수행 하는 C #이 있습니다 . 이 경우 MultipleActiveResultSets=True연결에서 사용하거나 여러 연결을 사용하는 것이 더 낫 습니까?



답변

이러한 유형의 작업을 위해 특별히 MARS (Multiple Active Result Set)가 추가되었으므로 SqlDataReader에서 읽고 추가 일괄 처리를 실행하기 위해 동시에 두 개의 연결을 열 필요가 없습니다.

MARS는 SQL Server 2005 이상과 호환됩니다. MSDN 문서에서 인용하려면 :

MARS (Multiple Active Result Set)가 도입되기 전에 개발자는 특정 시나리오를 해결하기 위해 다중 연결 또는 서버 측 커서를 사용해야했습니다.

자세한 내용은 다음을 참조하십시오.

MSDN 라이브러리-MARS 개요

데이터 읽기 및 업데이트 작업 예제 :

MSDN Library-데이터 조작 (MARS) ‘MARS로 데이터 읽기 및 업데이트’까지 아래로 스크롤합니다.


답변

이것은 내가 MARS가 추가 된 이유를 아는 한입니다. 그렇기 때문에 그것을 사용해야한다고 생각합니다.


답변

이를 테스트하는 가장 좋은 방법은 SQLServer Profiler를 실행하고 서버 측에서 실제로 어떤 일이 발생하는지 확인하는 것입니다.

내 생각 엔 ExecuteNonQuery ()를 사용하고 있기 때문에 더 좋지 않을 것입니다. 따라서 실제로 여러 결과로 작업하지 않습니다.


답변