데이터베이스 잠금 및 잠금 해제(XMLA)
XMLA(XML for Analysis)의 Lock 및 Unlock 명령을 사용하여 데이터베이스를 잠그고 잠금 해제할 수 있습니다. 일반적으로 다른 XMLA 명령은 실행 중 해당 명령을 수행하는 데 필요할 경우 자동으로 개체를 잠그거나 잠금 해제합니다. 데이터베이스를 명시적으로 잠그거나 잠금 해제하면 Batch 명령과 같이 단일 트랜잭션 내에서 여러 명령을 수행하는 동안 다른 응용 프로그램에서 해당 데이터베이스에 쓰기 트랜잭션을 커밋하지 못하게 할 수 있습니다.
데이터베이스 잠금
Lock 명령은 현재 활성 트랜잭션 컨텍스트 내에서 공유되거나 배타적으로 사용되는 개체를 잠급니다. 개체가 잠겨 있으면 잠금을 해제할 때까지 트랜잭션을 커밋할 수 없습니다. Microsoft SQL Server Analysis Services에서는 공유 잠금과 배타적 잠금이라는 두 가지 잠금 유형을 지원합니다. Analysis Services에서 지원하는 잠금 유형에 대한 자세한 내용은 Mode 요소(XMLA)를 참조하십시오.
Analysis Services는 데이터베이스 잠금만 허용합니다. Object 요소는 Analysis Services 데이터베이스에 대한 개체 참조를 포함해야 합니다. Object 요소를 지정하지 않거나 Object 요소가 데이터베이스 이외의 개체를 참조하면 오류가 발생합니다.
보안 정보 |
---|
데이터베이스 관리자 또는 서버 관리자만 명시적으로 Lock 명령을 실행할 수 있습니다. |
다른 명령을 실행하면 Analysis Services 데이터베이스에서 Lock 명령이 암시적으로 실행됩니다. 데이터베이스의 데이터 또는 메타데이터를 읽는 작업(예: Statement 명령을 실행하는 Execute 메서드 또는 Discover 메서드)을 수행하면 데이터베이스에서 암시적으로 공유 잠금이 실행됩니다. Analysis Services 데이터베이스에서 개체의 데이터 또는 메타데이터 변경을 커밋하는 트랜잭션(예: Alter 명령을 실행하는 Execute 메서드)을 실행하면 데이터베이스에서 암시적으로 배타적 잠금이 실행됩니다.
개체 잠금 해제
Unlock 명령은 현재 활성 트랜잭션 컨텍스트 내에서 설정된 잠금을 해제합니다.
보안 정보 |
---|
데이터베이스 관리자 또는 서버 관리자만 명시적으로 Unlock 명령을 실행할 수 있습니다. |
모든 잠금은 현재 트랜잭션의 컨텍스트에 유지됩니다. 현재 트랜잭션이 커밋 또는 롤백되면 해당 트랜잭션 내에 정의된 모든 잠금이 자동으로 해제됩니다.