UPDATE CUBE 문(MDX)
UPDATE CUBE 문은 SUM 집계를 사용하여 부모에 집계하는 큐브의 셀에 데이터를 쓰기 저장하는 데 사용됩니다. 자세한 설명 및 예는 블로그 포스트: Analysis Services를 사용하여 쓰기 저장 응용 프로그램 빌드(블로그)의 "할당 이해"를 참조하십시오.
구문
UPDATE [ CUBE ] Cube_Name
SET
<update clause>
[, <update clause> ...n ]
<update clause> ::=
Tuple_Expression[.VALUE]= New_Value
[
USE_EQUAL_ALLOCATION
| USE_EQUAL_INCREMENT
| USE_WEIGHTED_ALLOCATION [ BY Weight_Expression]
| USE_WEIGHTED_INCREMENT [ BY Weight_Expression]
]
인수
Cube_Name
큐브의 이름을 지정하는 유효한 문자열입니다.Tuple_Expression
튜플을 반환하는 유효한 MDX 식입니다.New_Value
유효한 숫자 식입니다.Weight_Expression
0에서 1 사이의 10진수 값을 반환하는 유효한 MDX 숫자 식입니다.
주의
큐브의 지정된 리프 또는 리프가 아닌 셀의 값을 업데이트할 수 있습니다. 지정된 리프가 아닌 셀 값을 종속되는 여러 리프 셀에 할당할 수도 있습니다. 튜플 식으로 지정되는 셀은 다차원 공간의 유효한 셀일 수 있으며, 리프 셀일 필요가 없습니다. 그러나 Sum 집계 함수를 사용하여 셀을 집계해야 하며, 셀을 식별하는 데 사용되는 튜플의 계산 멤버가 셀에 포함되어서는 안됩니다.
UPDATE CUBE 문은 지정된 합계로 롤업되는 리프 셀 및 리프가 아닌 셀로 일련의 개별 셀 쓰기 저장(writeback) 작업을 자동으로 생성하는 하위 루틴으로 이해될 수 있습니다.
다음 표에서는 할당 메서드에 대해 설명합니다.
할당 메서드 |
설명 |
---|---|
USE_EQUAL_ALLOCATION |
업데이트된 셀에 영향을 주는 모든 리프 셀에 다음 식에 따른 동일 값이 할당됩니다.
|
USE_EQUAL_INCREMENT |
업데이트된 셀에 영향을 주는 모든 리프 셀은 다음 식에 따라 변경됩니다.
|
USE_WEIGHTED_ALLOCATION |
업데이트된 셀에 영향을 주는 모든 리프 셀에 다음 식에 따른 동일 값이 할당됩니다.
|
USE_WEIGHTED_INCREMENT |
업데이트된 셀에 영향을 주는 모든 리프 셀은 다음 식에 따라 변경됩니다.
|
가중치 식이 지정되지 않은 경우 UPDATE CUBE 문은 암시적으로 다음 식을 사용합니다.
Weight_Expression = <leaf cell value> / <existing value>
가중치 식은 영(0)과 1 사이의 10진수 값으로 표현해야 합니다. 이 값은 할당의 영향을 받는 리프 셀에 할당하려는 할당 값의 비율을 지정합니다. 클라이언트 응용 프로그램 프로그래머는 해당 롤업 집계 값이 식의 할당된 값과 동일하도록 식을 만들어야 합니다.
경고
클라이언트 응용 프로그램에서는 잘못된 롤업 값이나 일관적이지 않은 데이터 등의 발생 가능한 예기치 않은 결과를 방지하기 위해 모든 차원에 대한 할당을 동시에 고려해야 합니다.
UPDATE CUBE 할당은 트랜잭션에 있어서 핵심적인 요소로 고려되어야 합니다. 즉, 식이나 보안 위배 오류 등의 어떤 이유로 인해 할당 작업 중 하나라도 실패하면 전체 UPDATE CUBE 작업이 실패합니다. 개별 할당 작업의 계산을 처리하기 전에 데이터의 스냅숏을 사용하여 결과 계산이 올바른지 확인해야 합니다.
경고
정수가 포함된 측정값에서 사용되는 경우 USE_WEIGHTED_ALLOCATION 메서드는 증분적인 반올림 변화로 인한 부정확한 결과를 반환할 수 있습니다.
중요
업데이트된 셀이 겹치지 않을 경우 Update Isolation Level 연결 문자열 속성을 사용하여 UPDATE CUBE의 성능을 향상시킬 수 있습니다.