Readme_MARS
업데이트: 2006년 7월 17일
이 예제에서는 MARS(Multiple Active Result Set) 기능을 사용하는 방법을 보여 줍니다. MARS를 사용하면 하나 이상의 명령을 실행한 결과가 모두 클라이언트로 완전히 반환되지는 않더라도 하나의 연결에서 여러 명령을 실행할 수 있습니다.
예제는 교육용으로만 제공되므로 프로덕션 환경에서 사용하기에 적합하지 않으며 프로덕션 환경에서 테스트되지 않았습니다. Microsoft에서는 이러한 예제에 대해 기술 지원을 제공하지 않습니다. 시스템 관리자의 허가 없이 프로덕션 SQL Server 데이터베이스 또는 보고서 서버에 예제 응용 프로그램 및 어셈블리를 연결하거나 사용해서는 안 됩니다.
기본 위치: drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\
Data Access\ADO\MARS
시나리오
AdventureWorks Cycles는 페인트 비용 상승으로 자전거 가격이 인상되었기 때문에 가장 인기 있는 자전거의 표준 원가를 올리고 가격을 제시하려고 합니다. 가격 상승은 페인트 색상에 따라 달라집니다.
언어
Transact-SQL, Visual C# 및 Visual Basic
기능
MARS 예제는 다음과 같은 SQL Server 2005 및 Microsoft .NET Framework 버전 2.0의 기능을 사용합니다.
응용 프로그램 영역 | 기능 |
---|---|
전체 |
MARS, ADO.NET 2.0, Transact-SQL 저장 프로시저 |
필수 구성 요소
이 예제를 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.
- SQL Server 2005 또는 SQL Server 2005 Express Edition(SQL Server Express). SQL Server 예제 및 다운로드 웹 사이트에서 SQL Server Express를 다운로드할 수 있습니다.
- SQL Server 2005에 포함되어 있으며 SQL Server Developer 웹 사이트에서 사용할 수 있는 AdventureWorks 데이터베이스
- SQL Server 2005 데이터베이스 엔진 예제. 이 예제는 SQL Server 2005에 포함되어 있습니다. SQL Server Developer 웹 사이트에서 최신 버전의 예제를 다운로드할 수 있습니다.
- .NET Framework SDK 2.0 또는 Microsoft Visual Studio 2005. .NET Framework SDK는 무료로 구할 수 있습니다. .NET Framework SDK 설치를 참조하십시오.
예제 빌드
강력한 이름 키 파일을 생성하지 않았다면 다음 지침에 따라 해당 키 파일을 생성합니다.
강력한 이름 키 파일을 생성하려면
Microsoft Visual Studio 2005 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 차례로 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.
-- 또는--
Microsoft .NET Framework 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 차례로 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.
디렉터리 변경 명령(CD)을 사용하여 명령 프롬프트 창의 현재 디렉터리를 예제가 설치된 폴더로 변경합니다.
[!참고] 예제가 있는 폴더를 확인하려면 시작 단추를 클릭하고 모든 프로그램, Microsoft SQL Server, 설명서 및 자습서를 차례로 가리킨 다음 예제 디렉터리를 클릭하십시오. 기본 설치 위치가 사용된 경우 예제는 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples에 있습니다.
명령 프롬프트에서 다음 명령을 실행하여 키 파일을 생성합니다.
sn -k SampleKey.snk
중요: 강력한 이름 키 쌍에 대한 자세한 내용은 MSDN의 .NET Development Center에서 "Security Briefs: Strong Names and Security in the .NET Framework"를 참조하십시오.
예제를 빌드하려면 다음을 수행하십시오.
예제 빌드
Visual Studio와
CS
디렉터리에 있는 솔루션 파일을 사용하여 예제를 컴파일하거나 .NET Framework 또는 Microsoft Visual Studio 2005 명령 프롬프트 창에서 다음 MSBuild 명령줄을 사용합니다.msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ MARS.sln
예제 실행
예제를 실행하려면 다음을 수행하십시오.
예제 실행
SQL Server Management Studio을 사용해
scripts\install.sql
스크립트를 엽니다. 해당 파일의 내용을 실행하거나 명령 프롬프트 창에서 다음 명령을 실행합니다.sqlcmd -E -I -i Scripts\install.sql
명령 프롬프트 창에서
CS\MARS\bin\debug
디렉터리를 찾아 다음 명령을 실행합니다.mars
예제 제거
이 예제에서 수정된 데이터를 다시 설정하고 예제를 제거하려면 다음을 수행하십시오.
예제 제거
Management Studio를 사용해
Scripts\cleanup.sql
스크립트를 엽니다. 해당 파일의 내용을 실행하거나 명령 프롬프트 창에서 다음 명령을 실행합니다.sqlcmd -E -I -i Scripts\cleanup.sql
설명
서버측 쿼리에 JOIN을 사용하는 것이 더욱 효율적인지 MARS 대신 업데이트를 사용하는 것이 더욱 효율적인지 항상 고려하십시오. 예를 들어 2004년 3월 동안의 모든 판매 주문 상세 기록에 대해 판매 주문 ID, 고객 ID, 제품 번호, 주문 수량 및 라인 항목 총계를 알아야 할 수 있습니다. MARS로 해당 쿼리를 작성할 수 있지만 다음과 같이 JOIN을 사용해 해당 쿼리를 작성하는 것이 더욱 효율적입니다.
SELECT SOH.SalesOrderID, SOH.CustomerID, SOD.ProductID,
SOD.OrderQty, SOD.LineTotal
FROM Sales.SalesOrderHeader as SOH
JOIN Sales.SalesOrderDetail as SOD
ON SOH.SalesOrderID = SOD.SalesOrderID
WHERE SOH.OrderDate >= CONVERT(datetime, '20040301')
AND SOH.OrderDate < CONVERT(datetime, '20040401')
ORDER BY SOH.SalesOrderID;
변경 내역
릴리스 | 내역 |
---|---|
2005년 12월 5일 |
|