일괄 작업 수행(XMLA)

XMLA(XML for Analysis)의 Batch 명령을 사용하여 단일 XMLA Execute 메서드를 사용하여 여러 XMLA 명령을 실행할 수 있습니다. Batch 명령에 포함된 여러 명령을 단일 트랜잭션 또는 각 명령에 대한 개별 트랜잭션, 직렬 또는 병렬로 실행할 수 있습니다. 여러 Microsoft SQL Server SQL Server Analysis Services 개체를 처리하기 위해 Batch 명령에서 아웃 오브 라인 바인딩 및 기타 속성을 지정할 수도 있습니다.

트랜잭션 및 비트랜잭션 Batch 명령

Batch 명령은 다음 두 가지 방법 중 하나로 명령을 실행합니다.

트랜잭션
Batch 명령의 Transaction 특성이 true로 설정된 경우 Batch 명령은 Batch 명령에 포함된 모든 명령을 단일 트랜잭션-트랜잭션 일괄 처리로 명령합니다.

트랜잭션 일괄 처리에서 명령이 실패하면 SQL Server Analysis Services 실패한 명령 이전에 실행된 Batch 명령의 모든 명령을 롤백하고 Batch 명령은 즉시 종료됩니다. 아직 실행되지 않은 Batch 명령의 모든 명령은 실행되지 않습니다. Batch 명령이 종료되면 Batch 명령은 실패한 명령에 대해 발생한 오류를 보고합니다.

비트랜잭션
Transaction 특성이 false로 설정된 경우 Batch 명령은 Batch 명령에 포함된 각 명령을 별도의 트랜잭션-비트랜잭션 일괄 처리로 실행합니다. 비트랜잭션 일괄 처리에서 명령이 실패하는 경우 Batch 명령은 실패한 명령 이후에도 명령을 계속 실행합니다. Batch 명령이 Batch 명령에 포함된 모든 명령을 실행하려고 하면 Batch 명령은 발생한 오류를 보고합니다.

Batch 명령에 포함된 명령에서 반환된 모든 결과는 명령Batch 명령에 포함된 순서와 동일한 순서로 반환됩니다. Batch 명령에서 반환되는 결과는 Batch 명령이 트랜잭션인지 아니면 비전송인지에 따라 달라집니다.

참고

Batch 명령에 Lock 명령과 같은 출력을 반환하지 않는 명령이 포함되어 있고 해당 명령이 성공적으로 실행되면 Batch 명령은 결과 요소 내에 빈 루트 요소를 반환합니다. 빈 루트 요소는 Batch 명령에 포함된 각 명령을 해당 명령의 결과에 적합한 루트 요소와 일치시킬 수 있도록 합니다.

트랜잭션 일괄 처리 결과에서 결과 반환

트랜잭션 일괄 처리 내에서 실행되는 명령의 결과는 전체 Batch 명령이 완료될 때까지 반환되지 않습니다. 트랜잭션 일괄 처리 내에서 실패하는 모든 명령으로 인해 전체 Batch 명령과 포함된 모든 명령이 롤백되므로 각 명령이 실행된 후에는 결과가 반환되지 않습니다. 모든 명령이 성공적으로 시작되고 실행되면 Batch 명령에 대해 Execute 메서드에서 반환된 ExecuteResponse 요소의 반환 요소에는 하나의 결과 요소가 포함되며, 이 요소에는 Batch 명령에 포함된 각 성공적으로 실행된 명령에 대한 하나의 루트 요소가 포함됩니다. Batch 명령의 명령을 시작할 수 없거나 완료하지 못한 경우 Execute 메서드는 실패한 명령의 오류가 포함된 Batch 명령에 대한 SOAP 오류를 반환합니다.

비트랜잭션 일괄 처리 결과에서 결과 반환

실행되지 않는 일괄 처리 내에서 실행되는 명령의 결과는 명령이 Batch 명령 내에 포함된 순서와 각 명령에서 반환되는 순서로 반환됩니다. Batch 명령에 포함된 명령이 성공적으로 시작되지 않으면 Execute 메서드는 Batch 명령에 대한 오류가 포함된 SOAP 오류를 반환합니다. 하나 이상의 명령이 성공적으로 시작되면 Batch 명령에 대한 Execute 메서드에서 반환된 ExecuteResponse 요소의 반환 요소에는 하나의 결과 요소가 포함되며, 이 요소에는 Batch 명령에 포함된 각 명령에 대한 하나의 루트 요소가 포함됩니다. 비트랜잭션 일괄 처리에서 하나 이상의 명령을 시작할 수 없거나 완료하지 못한 경우 실패한 명령에 대한 루트 요소에 오류를 설명하는 오류 요소가 포함됩니다.

참고

비트랜잭션 일괄 처리에서 하나 이상의 명령을 시작할 수 있는 한, 비전송 일괄 처리에 포함된 모든 명령이 Batch 명령의 결과에 오류를 반환하더라도 비트랜잭션 일괄 처리가 성공적으로 실행된 것으로 간주됩니다.

순차 및 병렬 실행 사용

Batch 명령을 사용하여 포함된 명령을 직렬 또는 병렬로 실행할 수 있습니다. 명령이 직렬로 실행되면 Batch 명령에서 현재 실행 중인 명령이 완료될 때까지 Batch 명령에 포함된 다음 명령을 시작할 수 없습니다. 명령이 병렬로 실행되면 Batch 명령을 통해 여러 명령을 동시에 실행할 수 있습니다.

명령을 병렬로 실행하려면 Batch 명령의 Parallel 속성에 병렬로 실행할 명령을 추가합니다. 현재 SQL Server Analysis Services 연속적인 순차적 프로세스 명령만 병렬로 실행할 수 있습니다. 병렬 속성에 포함된 Create 또는 Alter와 같은 다른 XMLA 명령은 직렬로 실행됩니다.

SQL Server Analysis Services 병렬 속성에 포함된 모든 Process 명령을 병렬로 실행하려고 하지만 포함된 모든 Process 명령을 병렬로 실행할 수 있다고 보장할 수는 없습니다. 인스턴스는 각 프로세스 명령을 분석하고, 인스턴스가 명령을 병렬로 실행할 수 없다고 판단하면 프로세스 명령이 직렬로 실행됩니다.

참고

명령을 병렬로 실행하려면 SQL Server Analysis Services 연결당 하나의 활성 트랜잭션만 지원하고 비트랜잭션 일괄 처리는 별도의 트랜잭션에서 각 명령을 실행하므로 Batch 명령의 Transaction 특성을 true로 설정해야 합니다. 병렬 속성을 비트랜잭션 일괄 처리에 포함하면 오류가 발생합니다.

병렬 실행 제한

SQL Server Analysis Services 인스턴스는 인스턴스가 실행되는 컴퓨터의 제한까지 가능한 한 많은 프로세스 명령을 병렬로 실행하려고 시도합니다. 병렬 속성의 maxParallel 특성을 병렬로 실행할 수 있는 최대 Process 명령 수를 나타내는 값으로 설정하여 동시에 실행 중인 Process 명령의 수를 제한할 수 있습니다.

예를 들어 병렬 속성은 나열된 시퀀스에 다음 명령을 포함합니다.

  1. 만들기

  2. 처리

  3. 변경

  4. 처리

  5. 처리

  6. 처리

  7. 삭제

  8. 처리

  9. 처리

Parallel 속성의 maxParallel 특성은 2로 설정됩니다. 따라서 인스턴스는 이전 명령 목록을 다음 목록에 설명된 대로 실행합니다.

  • 명령 1은 Create 명령이고 Process 명령만 병렬로 실행할 수 있으므로 명령 1이 직렬로 실행됩니다.

  • 명령 2는 명령 1이 완료된 후 직렬로 실행됩니다.

  • 명령 3은 명령 2가 완료된 후 직렬로 실행됩니다.

  • 명령 4와 5는 명령 3이 완료된 후 병렬로 실행됩니다. 명령 6도 프로세스 명령이지만 maxParallel 속성이 2로 설정되어 있으므로 명령 6은 명령 4 및 5와 병렬로 실행할 수 없습니다.

  • 명령 4 및 5가 완료된 후 명령 6이 순차적으로 실행됩니다.

  • 명령 6이 완료된 후 명령 7이 순차적으로 실행됩니다.

  • 명령 7이 완료된 후 명령 8 및 9가 병렬로 실행됩니다.

Batch 명령을 사용하여 개체 처리

Batch 명령에는 여러 SQL Server Analysis Services 프로젝트 처리를 지원하기 위해 특별히 포함된 몇 가지 선택적 속성 및 특성이 포함되어 있습니다.

  • Batch 명령의 ProcessAffectedObjects 특성은 지정된 개체를 처리하는 Batch 명령에 포함된 Process 명령의 결과로 재처리가 필요한 개체도 인스턴스 에서 처리해야 하는지 여부를 나타냅니다.

  • Bindings 속성에는 Batch 명령의 모든 Process 명령에서 사용하는 아웃 오브 라인 바인딩 컬렉션이 포함되어 있습니다.

  • DataSource 속성에는 Batch 명령의 모든 Process 명령에서 사용하는 데이터 원본에 대한 아웃 오브 라인 바인딩이 포함되어 있습니다.

  • DataSourceView 속성에는 Batch 명령의 모든 Process 명령에서 사용하는 데이터 원본 뷰에 대한 아웃 오브 라인 바인딩이 포함되어 있습니다.

  • ErrorConfiguration 속성은 Batch 명령이 Batch 명령에 포함된 모든 Process 명령에서 발생하는 오류를 처리하는 방식을 지정합니다.

    중요

    프로세스 명령이 Batch 명령에 포함된 경우 프로세스 명령에 바인딩, DataSource, DataSourceView 또는 ErrorConfiguration 속성을 포함할 수 없습니다. 프로세스 명령에 대해 이러한 속성을 지정해야 하는 경우 프로세스 명령이 포함된 Batch 명령의 해당 속성에 필요한 정보를 제공합니다.

참고 항목

Batch 요소(XMLA)
Process 요소(XMLA)
다차원 모델 처리(Analysis Services)
Analysis Services에서 XMLA를 사용하여 개발