Condividi tramite


Schema di database di persistenza

In questo argomento vengono descritte le visualizzazioni pubbliche supportate dall'archivio di istanze del flusso di lavoro SQL.

Visualizzazione Istanze

La vista Istanze contiene informazioni generali su tutte le istanze del flusso di lavoro nel database.

Nome colonna Tipo colonna Descrizione
InstanceId UniqueIdentifier ID di un'istanza del flusso di lavoro.
PendingTimer Data/Ora Indica che il flusso di lavoro è bloccato in un'attività Delay e sarà ripreso dopo la scadenza del timer. Questo valore può essere Null se il flusso di lavoro non è bloccato in attesa della scadenza di un timer.
CreationTime Data/Ora Indica quando è stato creato il flusso di lavoro.
LastUpdatedTime Data/Ora Indica l'ora in cui il flusso di lavoro è stato salvato l'ultima volta in modo permanente nel database.
ServiceDeploymentId BigInt Si comporta come una chiave esterna della visualizzazione [ServiceDeployments]. Se l'istanza del flusso di lavoro corrente è un'istanza di un servizio ospitato su Web, in questa colonna è presente un valore, in caso contrario è impostata su NULL.
SuspensionExceptionName Nvarchar(450) Indica il tipo di eccezione, ad esempio InvalidOperationException, che ha causato la sospensione del flusso di lavoro.
SuspensionReason Nvarchar(max) Indica il motivo per cui l'istanza del flusso di lavoro è stata sospesa. Se un'eccezione ha causato la sospensione dell'istanza, in questa colonna è presente il messaggio associato all'eccezione.

Se l'istanza è stata sospesa manualmente, in questa colonna è presente il motivo della sospensione dell'istanza specificato dall'utente.
ActiveBookmarks Nvarchar(max) Se l'istanza del flusso di lavoro è inattiva, questa proprietà indica i segnalibri sui quali è bloccata l'istanza. Se l'istanza non è inattiva, questa colonna è NULL.
CurrentMachine Nvarchar(128) Indica il nome del computer in cui l'istanza del flusso di lavoro è attualmente caricata in memoria.
Last Machine. Nvarchar(450) Indica l'ultimo computer in cui è stata caricata l'istanza del flusso di lavoro.
ExecutionStatus Nvarchar(450) Indica lo stato di esecuzione corrente del flusso di lavoro. Gli stati possibili includono l'esecuzione, l'inattività, la chiusura.
IsInitialized Bit Indica se l'istanza del flusso di lavoro è stata inizializzata. Un'istanza del flusso di lavoro inizializzata è stata salvata in modo permanente almeno una volta.
IsSuspended Bit Indica se l'istanza del flusso di lavoro è stata sospesa.
IsCompleted Bit Indica se l'esecuzione dell'istanza del flusso di lavoro è stata completata. Nota: se e solo se la proprietà InstanceCompletionAction è impostata su DeleteAll, le istanze vengono rimosse dalla vista al completamento.
EncodingOption TinyInt Descrive la codifica usata per serializzare le proprietà dei dati.

- 0 - Nessuna codifica
- 1 – GzipStream
ReadWritePrimitiveDataProperties Varbinary(max) Contiene le proprietà dei dati dell'istanza serializzata che saranno restituiti all'esecuzione del flusso di lavoro quando l'istanza viene caricata.

Ogni proprietà primitiva è un tipo CLR nativo e indica che non sono necessari assembly speciali per deserializzare il BLOB.
WriteOnlyPrimitiveDataProperties Varbinary(max) Contiene le proprietà dei dati dell'istanza serializzata che non vengono restituiti all'esecuzione del flusso di lavoro quando l'istanza viene caricata.

Ogni proprietà primitiva è un tipo CLR nativo e indica che non sono necessari assembly speciali per deserializzare il BLOB.
ReadWriteComplexDataProperties Varbinary(max) Contiene le proprietà dei dati dell'istanza serializzata che saranno restituiti all'esecuzione del flusso di lavoro quando l'istanza viene caricata.

Un deserializzatore richiederebbe la conoscenza di tutti i tipi di oggetti archiviati in questo BLOB.
WriteOnlyComplexDataProperties Varbinary(max) Contiene le proprietà dei dati dell'istanza serializzata che non vengono restituiti all'esecuzione del flusso di lavoro quando l'istanza viene caricata.

Un deserializzatore richiederebbe la conoscenza di tutti i tipi di oggetti archiviati in questo BLOB.
IdentityName Nvarchar(max) Il nome della definizione del flusso di lavoro.
IdentityPackage Nvarchar(max) Le informazioni sul pacchetto fornite quando il flusso di lavoro viene creato (come il nome dell'assembly).
Compilazione BigInt Numero di build della versione del flusso di lavoro.
Principale BigInt Il numero principale della versione del flusso di lavoro.
Secondarie BigInt Il numero secondario della versione del flusso di lavoro.
Revisione BigInt Numero di revisione della versione del flusso di lavoro.

Attenzione

La visualizzazione Istanze contiene anche un trigger Delete. Gli utenti con autorizzazioni appropriate possono eseguire istruzioni di eliminazione a fronte di questa visualizzazione per la rimozione forzata delle istanze del flusso di lavoro dal database. Si consiglia di procedere all'eliminazione diretta dalla visualizzazione solo come ultima risorsa, perché l'eliminazione di un'istanza dall'esecuzione del flusso di lavoro potrebbe comportare conseguenze impreviste. Usare invece l'endpoint di gestione dell'istanza del flusso di lavoro affinché l'istanza venga terminata dall'esecuzione del flusso di lavoro. Se si desidera eliminare un numero elevato di istanze dalla visualizzazione, assicurarsi che non siano presenti esecuzioni attive che potrebbe essere in corso su queste istanze.

Visualizzazione ServiceDeployments

La visualizzazione ServiceDeployments contiene informazioni sulla distribuzione per tutti i servizi del flusso di lavoro ospitati web (IIS/WAS). Ogni istanza del flusso di lavoro ospitata sul Web conterrà un ServiceDeploymentId che fa riferimento a una riga in questa visualizzazione.

Nome colonna Tipo colonna Descrizione
ServiceDeploymentId BigInt Chiave primaria per questa visualizzazione.
SiteName Nvarchar(max) Rappresenta il nome del sito che contiene il servizio flusso di lavoro, ad esempio sito Web predefinito.
RelativeServicePath Nvarchar(max) Rappresenta il percorso virtuale relativo del sito che punta al servizio flusso di lavoro ad esempio /app1/PurchaseOrderService.svc.
RelativeApplicationPath Nvarchar(max) Rappresenta il percorso virtuale relativo del sito che punta a un'applicazione contenente il servizio flusso di lavoro (ad esempio /app1).
ServiceName Nvarchar(max) Rappresenta il nome del servizio flusso di lavoro (ad esempio, PurchaseOrderService).
ServiceNamespace Nvarchar(max) Rappresenta lo spazio dei nomi del servizio flusso di lavoro (ad esempio, MyCompany).

La visualizzazione ServiceDeployments contiene inoltre un trigger di eliminazione. Gli utenti con autorizzazioni appropriate possono eseguire istruzioni di eliminazione a fronte di questa visualizzazione per la rimozione di voci di ServiceDeployment dal database. Tenere presente quanto segue:

  1. L'eliminazione di voci da questa visualizzazione consuma molte risorse, in quanto è necessario bloccare l'intero database prima dell'esecuzione di questa operazione. Ciò è necessario per evitare lo scenario in cui un'istanza del flusso di lavoro potrebbe fare riferimento a una voce di ServiceDeployment inesistente. Procedere all'eliminazione da questa visualizzazione solo durante i periodi di inattività o manutenzione.

  2. Qualsiasi tentativo di eliminare una riga serviceDeployment a cui si fa riferimento dalle voci nella visualizzazione Istanze genererà un'operazione no-op. È possibile eliminare solo righe di ServiceDeployment prive di riferimenti.

Visualizzazione InstancePromotedProperties

La visualizzazione InstancePromotedProperties contiene informazioni per tutte le proprietà alzate di livello specificate dall'utente. Una proprietà promossa funziona come una proprietà di prima classe che può essere usata da un utente nelle query per recuperare istanze. Ad esempio, un utente potrebbe aggiungere una promozione PurchaseOrder che archivia sempre il costo di un ordine nella colonna Value1 . Ciò consentirebbe a un utente di eseguire una query per tutti gli ordini di acquisto il cui costo supera un determinato valore.

Tipo colonna Tipo colonna Descrizione
InstanceId UniqueIdentifier ID dell'istanza del flusso di lavoro.
EncodingOption TinyInt Descrive la codifica usata per serializzare le proprietà binarie promosse.

- 0 - Nessuna codifica
- 1 – GZipStream
PromotionName Nvarchar(400) Nome della promozione associata a questa istanza. PromotionName è necessario per aggiungere contesto alle colonne generiche in questa riga.

Ad esempio, un PromotionName di PurchaseOrder potrebbe indicare che Value1 contiene il costo dell'ordine, Value2 contiene il nome del cliente che ha inserito l'ordine, Value3 contiene l'indirizzo del cliente e così via.
Value[1-32] SqlVariant Value[1-32] contiene valori che possono essere archiviati in una colonna SqlVariant. Una singola promozione non può contenere più di 32 SqlVariant.
Value[33-64] Varbinary(max) Value[33-64] contiene valori serializzati. Ad esempio, Value33 potrebbe contenere un'immagine JPEG di un elemento in fase di acquisto. Una singola promozione non può contenere più di 32 proprietà binarie.

La visualizzazione InstancePromotedProperties è associata allo schema e ciò significa che gli utenti possono aggiungere indici in una o più colonne per ottimizzare le query basate su questa visualizzazione.

Nota

Una visualizzazione indicizzata richiede più spazio di archiviazione e comporta un aumento del sovraccarico di elaborazione. Per altre informazioni, vedere Miglioramento delle prestazioni con le viste indicizzate di SQL Server 2008.