MARS (Multiple Active Result Sets)의 단점은 무엇입니까?
MARS (Multiple Active Result Sets)의 단점을 아는 사람이 있습니까? 커서가 MARS보다 더 유용한 경우처럼 MARS 사용을 피해야하는 이유를 아는 사람이 있습니까?
(이 (1) 팀 블로그 에서) 적어도 두 가지 알려진 (잠재적 인) 단점이 있습니다 .
분명히 이것은 MARS 지원 설계에 대해 실행되도록 설계되지 않은 레거시 시스템에 잠재적 인 문제를 일으킬 수 있습니다. "MARS가 아닌 세계에서 실행되도록 최적화 된 기존 코드는 MARS로 수정하지 않고 실행하면 약간의 성능 저하를 보일 수 있습니다."
“MARS를 사용하면 여러 개의 다중 문 배치를 서버로 보낼 수 있습니다. 서버는 이러한 일괄 처리 실행을 인터리브합니다. 즉, 일괄 처리가 SET 또는 USE 문을 통해 서버 상태를 변경하거나 TSQL 트랜잭션 관리 문 (BEGIN TRAN, COMMIT, ROLLBACK)을 사용하면 사용자와 서버가 혼동 될 수 있습니다. 당신의 실제 의도가 무엇인지에 대해.”
아직 MARS 지원 디자인을 시험해 보지 않았지만 현재 프로젝트에서 거의 시도하고 있습니다. 경쟁하는 (때로는 종속 된) 쿼리 작업 (예 : 활성 레코드 집합이 실행중인 동일한 데이터베이스에서 구성 데이터를 지연로드하는 것과 같은)에 약간의 문제가 있습니다.
MSDN 사이트 (2) 에 대한 자세한 정보는 여기에 있습니다.
[ (1) http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx ]
[(2)http://msdn.microsoft.com/en-us/library/ms131686.aspx ]
- 한 번에 하나의 연결을 수행하는 것보다 약간 더 많은 서버 리소스가 필요합니다.
- SQL Server 2005 이상을 실행해야합니다. 레거시 (ack!) 환경에서는 문제가 될 수 있습니다.
무엇에 따라? 실제 단점은 없습니다.
트랜잭션 저장 점을 지원하지 않습니다. 하지만 저는 이것이 단점이라고 생각하지 않습니다.
참고 URL : https://stackoverflow.com/questions/374444/disadvantages-of-mars-multiple-active-result-sets
'developer tip' 카테고리의 다른 글
SQL Server에서 "SET ANSI_NULLS ON"은 무엇을 의미합니까? (0) | 2020.10.15 |
---|---|
투기. (0) | 2020.10.15 |
(큰?) 수의 값에 대한 MySQL "IN"연산자 성능 (0) | 2020.10.15 |
이 Java 8 프로그램이 컴파일되지 않는 이유는 무엇입니까? (0) | 2020.10.15 |
종속성 주입과 함께 log4net을 사용하는 방법 (0) | 2020.10.15 |