다음을 통해 공유


지속성 데이터베이스 스키마

이 항목은 Windows Workflow Foundation 4에 적용됩니다.

이 항목에서는 SQL 워크플로 인스턴스 저장소에서 지원하는 공용 뷰에 대해 설명합니다.

인스턴스 뷰

Instances 뷰에는 데이터베이스의 모든 워크플로 인스턴스에 대한 일반 정보가 포함되어 있습니다.

열 이름 열 유형 설명

InstanceId

UniqueIdentifier

워크플로 인스턴스의 ID입니다.

PendingTimer

DateTime

워크플로가 Delay 활동에서 차단되었으며 타이머가 만료된 후 다시 시작될 것임을 나타냅니다. 워크플로가 차단되지 않고 타이머가 만료될 때까지 기다리는 경우 이 값은 Null일 수 있습니다.

CreationTime

DateTime

워크플로가 만들어진 시점을 나타냅니다.

LastUpdatedTime

DateTime

워크플로가 데이터베이스에 마지막으로 유지된 시간을 나타냅니다.

ServiceDeploymentId

BigInt

[ServiceDeployments] 뷰의 외래 키 역할을 합니다. 현재 워크플로 인스턴스가 웹 호스팅 서비스의 인스턴스인 경우 이 열은 값을 포함하고, 그렇지 않으면 NULL로 설정됩니다.

SuspensionExceptionName

Nvarchar(450)

워크플로를 일시 중단시킨 예외의 형식(예: InvalidOperationException)을 나타냅니다.

SuspensionReason

Nvarchar(max)

워크플로 인스턴스가 일시 중단된 이유를 나타냅니다. 예외 때문에 인스턴스가 일시 중단된 경우에는 이 열에 예외와 관련된 메시지가 포함되고,

인스턴스를 수동으로 일시 중단한 경우에는 이 열에 인스턴스를 일시 중단시킨 사용자 지정 이유가 포함됩니다.

ActiveBookmarks

Nvarchar(max)

워크플로 인스턴스가 유휴 상태인 경우 이 속성은 인스턴스가 차단된 책갈피를 나타내고, 인스턴스가 유휴 상태가 아닌 경우 이 열은 NULL입니다.

CurrentMachine

Nvarchar(128)

현재 워크플로 인스턴스가 메모리에 로드된 컴퓨터의 이름을 나타냅니다.

LastMachineRunOn

Nvarchar(450)

워크플로 인스턴스를 마지막으로 로드한 컴퓨터를 나타냅니다.

ExecutionStatus

Nvarchar(450)

워크플로의 현재 실행 상태를 나타냅니다. 가능한 상태로는 Executing, IdleClosed가 있습니다.

IsInitialized

Bit

워크플로 인스턴스가 초기화되었는지 여부를 나타냅니다. 초기화된 워크플로 인스턴스는 한 번 이상 유지된 워크플로 인스턴스입니다.

IsSuspended

Bit

워크플로 인스턴스가 일시 중단되었는지 여부를 나타냅니다.

IsCompleted

Bit

워크플로 인스턴스의 실행이 완료되었는지 여부를 나타냅니다.

Ee943755.note(ko-kr,VS.100).gif참고:
InstanceCompletionAction 속성이 DeleteAll로 설정되어 있으면 인스턴스가 완료될 때 뷰에서 제거됩니다.

EncodingOption

TinyInt

데이터 속성을 serialize하는 데 사용된 인코딩에 대해 설명합니다.

  • 0 – 인코딩하지 않음

  • 1 – GzipStream

ReadWritePrimitiveDataProperties

Varbinary(max)

인스턴스가 로드될 때 워크플로 런타임에 다시 제공될 serialize된 인스턴스 데이터 속성을 포함합니다.

각각의 기본 속성은 네이티브 CLR 형식이며, 이는 blob를 deserialize하는 데 특별한 어셈블리가 필요하지 않음을 의미합니다.

WriteOnlyPrimitiveDataProperties

Varbinary(max)

인스턴스가 로드될 때 워크플로 런타임에 다시 제공되지 않는 serialize된 인스턴스 데이터 속성을 포함합니다.

각각의 기본 속성은 네이티브 CLR 형식이며, 이는 blob를 deserialize하는 데 특별한 어셈블리가 필요하지 않음을 의미합니다.

ReadWriteComplexDataProperties

Varbinary(max)

인스턴스가 로드될 때 워크플로 런타임에 다시 제공될 serialize된 인스턴스 데이터 속성을 포함합니다.

deserializer에는 이 blob에 저장된 모든 개체 형식에 대한 정보가 필요합니다.

WriteOnlyComplexDataProperties

Varbinary(max)

인스턴스가 로드될 때 워크플로 런타임에 다시 제공되지 않는 serialize된 인스턴스 데이터 속성을 포함합니다.

deserializer에는 이 blob에 저장된 모든 개체 형식에 대한 정보가 필요합니다.

Ee943755.Caution(ko-kr,VS.100).gif주의:
Instances 뷰에는 삭제 트리거도 포함되어 있습니다. 적절한 사용 권한을 가진 사용자는 데이터베이스에서 워크플로 인스턴스를 강제로 제거하는 삭제 문을 이 뷰에 대해 실행할 수 있습니다. 워크플로 런타임에 인스턴스를 삭제하면 의도하지 않은 결과가 발생할 수 있으므로 뷰에서 직접 삭제하는 방법은 다른 방법이 없는 경우에만 사용하는 것이 좋습니다. 대신 워크플로 인스턴스 관리 끝점을 사용하여 워크플로 런타임에서 인스턴스를 종료하게 하십시오. 뷰에서 많은 수의 인스턴스를 삭제하려는 경우에는 이러한 인스턴스에서 작동할 수 있는 활성 런타임이 없는지 확인하십시오.

ServiceDeployments 뷰

ServiceDeployments 뷰에는 모든 웹 호스팅 워크플로 서비스(IIS/WAS)에 대한 개발 정보가 포함되어 있습니다. 웹 호스팅되는 각 워크플로 인스턴스에는 이 뷰의 행을 참조하는 ServiceDeploymentId가 포함됩니다.

열 이름 열 유형 설명

ServiceDeploymentId

BigInt

이 뷰의 기본 키입니다.

RelativeServicePath

Nvarchar(max)

워크플로 서비스를 가리키는 사이트에 상대적인 가상 경로를 나타냅니다. /app1/PurchaseOrderService.svc를 예로 들 수 있습니다.

RelativeApplicationPath

Nvarchar(max)

워크플로 서비스가 포함된 응용 프로그램을 가리키는 사이트에 상대적인 가상 경로를 나타냅니다. /app1을 예로 들 수 있습니다.

ServiceName

Nvarchar(max)

워크플로 서비스의 이름을 나타냅니다. PurchaseOrderService를 예로 들 수 있습니다.

ServiceNamespace

Nvarchar(max)

워크플로 서비스의 네임스페이스를 나타냅니다. MyCompany를 예로 들 수 있습니다.

ServiceDeployments 뷰에는 삭제 트리거도 포함되어 있습니다. 적절한 사용 권한을 가진 사용자는 이 뷰에 대해 삭제 문을 실행하여 데이터베이스에서 ServiceDeployment 항목을 제거할 수 있습니다.

  1. 이 뷰에서 항목을 삭제하려면 먼저 전체 데이터베이스를 잠궈야 하므로 이 작업은 부담이 되는 작업입니다. 이 작업은 워크플로 인스턴스가 존재하지 않는 ServiceDeployment 항목을 참조하는 일이 발생하지 않게 하려는 경우 필요합니다. 다운 시간이나 유지 관리 창에 있는 동안에만 이 뷰에서 삭제하는 작업을 수행하기 바랍니다.

  2. Instances 뷰의 항목에서 참조하는 ServiceDeployment 행을 삭제하려고 하면 작동하지 않는 상태가 되며, 참조가 없는 ServiceDeployment 행만 삭제할 수 있습니다.

InstancePromotedProperties 뷰

InstancePromotedProperties 뷰에는 사용자가 지정한 모든 승격된 속성에 대한 정보가 포함되어 있습니다. 승격된 속성은 사용자가 인스턴스를 검색할 때 쿼리에 사용할 수 있는 고급 속성 역할을 합니다. 예를 들어 사용자가 항상 Value1 열에 주문 가격을 저장하는 PurchaseOrder 승격을 추가할 수 있습니다. 그러면 사용자는 가격이 특정 값을 초과하는 모든 구매 주문을 쿼리할 수 있습니다.

열 유형

열 유형

설명

InstanceId

UniqueIdentifier

워크플로 인스턴스의 ID입니다.

EncodingOption

TinyInt

승격된 이진 속성을 serialize하는 데 사용된 인코딩에 대해 설명합니다.

  • 0 – 인코딩하지 않음

  • 1 – GZipStream

PromotionName

Nvarchar(400)

이 인스턴스와 관련된 승격의 이름입니다. PromotionName은 이 행의 제네릭 열에 컨텍스트를 추가하는 데 필요합니다.

예를 들어 PurchaseOrder의 PromotionName은 Value1에는 주문 가격이 포함되고 Value2에는 주문한 고객의 이름이 포함되고 Value 3에는 고객의 주소가 포함됨을 나타낼 수 있습니다.

Value[1-32]

SqlVariant

Value[1-32]에는 SqlVariant 열에 저장할 수 있는 값이 포함됩니다. 32개보다 많은 SqlVariant는 단일 승격에 포함될 수 없습니다.

Value[33-64]

Varbinary(max)

Value[33-64]에는 serialize된 값이 포함됩니다. 예를 들어 Value33에는 구매할 품목의 JPEG이 포함될 수 있습니다. 32개보다 많은 이진 속성은 단일 승격에 포함될 수 없습니다.

InstancePromotedProperties 뷰는 스키마 바인딩 뷰이며, 이는 이 뷰에 대한 쿼리를 최적화하기 위해 사용자가 하나 이상의 열에 대한 인덱스를 추가할 수 있음을 의미합니다.

Ee943755.note(ko-kr,VS.100).gif참고:
인덱싱된 뷰에는 추가 저장소가 필요하며 처리 오버헤드가 추가됩니다. 자세한 내용은 Improving Performance with SQL Server 2008 Indexed Views를 참조하십시오.