Схема базы данных постоянного хранения
В этом разделе описаны открытые представления, поддерживаемые хранилищем экземпляров рабочих процессов SQL.
Представление экземпляров
Представление "Экземпляры" содержит общие сведения обо всех экземплярах рабочих процессов в базе данных.
Имя столбца | Тип столбца | Description |
---|---|---|
InstanceId | UniqueIdentifier | Идентификатор экземпляра рабочего процесса. |
PendingTimer | Дата/время | Указывает, что рабочий процесс блокирован действием Delay и будет возобновлен по истечении интервала таймера. Это значение может быть равно null, если рабочий процесс не блокирован, и ожидает срабатывания таймера. |
CreationTime | Дата/время | Указывает, что был создан рабочий процесс. |
LastUpdatedTime | Дата/время | Указывает время последнего сохранения рабочего процесса в базе данных. |
ServiceDeploymentId | BigInt | Служит внешним ключом в представлении [ServiceDeployments]. Если текущий экземпляр рабочего процесса представляет экземпляр службы, размещенной в Интернете, то этот столбец содержит значение, в противном случае значение будет равно null. |
SuspensionExceptionName | Nvarchar(450) | Указывает тип исключения (например, InvalidOperationException), которое вызвало приостановку рабочего процесса. |
SuspensionReason | Nvarchar(max) | Указывает причины приостановки выполнения экземпляра рабочего процесса. Если исключение вызвало приостановку рабочего процесса, этот столбец содержит сообщение, связанное с исключением. Если экземпляр был приостановлен вручную, этот столбец содержит указанную пользователем причину приостановки экземпляра. |
ActiveBookmarks | Nvarchar(max) | Если экземпляр рабочего процесса бездействует, это свойство указывает, по каким закладкам блокирован экземпляр. Если экземпляр рабочего процесса не бездействует, значение этого столбца равно null. |
CurrentMachine | Nvarchar(128) | Указывает имя компьютера, на котором в данный момент загружен в память экземпляр рабочего процесса. |
LastMachine | Nvarchar(450) | Указывает последний компьютер, на котором был загружен в память экземпляр рабочего процесса. |
ExecutionStatus | Nvarchar(450) | Указывает текущее состояние выполнения рабочего процесса. Возможные состояния включают выполнение, простой, закрытый. |
IsInitialized | бит | Указывает, инициализирован ли экземпляр рабочего процесса. Инициализированный экземпляр рабочего процесса - это экземпляр, который был материализован хотя бы один раз. |
IsSuspended | бит | Указывает, приостановлен ли экземпляр рабочего процесса. |
IsCompleted | бит | Указывает, завершено ли выполнение экземпляра рабочего процесса. Примечание. Если и только если для свойства InstanceCompletionAction задано значение DeleteAll, экземпляры удаляются из представления после завершения. |
EncodingOption | TinyInt | Описывает способ кодирования, используемый для сериализации свойств данных. - 0 — кодирование без кодирования - 1 — GzipStream |
ReadWritePrimitiveDataProperties | Varbinary(max) | Содержит сериализованные свойства данных экземпляра, которые будут передаваться обратно в среду выполнения рабочих процессов при загрузке экземпляра. Каждое свойство-примитив имеет собственный тип CLR, то есть для десериализации задания не требуются специальные сборки. |
WriteOnlyPrimitiveDataProperties | Varbinary(max) | Содержит сериализованные свойства данных экземпляра, которые не передаются обратно в среду выполнения рабочих процессов при загрузке экземпляра. Каждое свойство-примитив имеет собственный тип CLR, то есть для десериализации задания не требуются специальные сборки. |
ReadWriteComplexDataProperties | Varbinary(max) | Содержит сериализованные свойства данных экземпляра, которые будут передаваться обратно в среду выполнения рабочих процессов при загрузке экземпляра. Десериализатору требуется набор знаний для всех типов объектов, хранящихся в этом большом двоичном объекте. |
WriteOnlyComplexDataProperties | Varbinary(max) | Содержит сериализованные свойства данных экземпляра, которые не передаются обратно в среду выполнения рабочих процессов при загрузке экземпляра. Десериализатору требуется набор знаний для всех типов объектов, хранящихся в этом большом двоичном объекте. |
IdentityName | Nvarchar(max) | Имя определения рабочего процесса. |
IdentityPackage | Nvarchar(max) | Данные о пакете, указанные при создании рабочего процесса (например, имя сборки). |
Сборка | BigInt | Номер сборки версии рабочего процесса. |
Основная | BigInt | Основной номер версии рабочего процесса. |
Незначительный | BigInt | Дополнительный номер версии рабочего процесса. |
Исправление | BigInt | Номер редакции версии рабочего процесса. |
Внимание
Представление "Экземпляры" также содержит триггер delete. Пользователи с соответствующими разрешениями могут выполнять в этом представлении инструкции удаления, которые принудительно удаляют экземпляры рабочего процесса из базы данных. Рекомендуем выполнять удаление непосредственно из представления только в крайнем случае, так как удаление экземпляра не из среды выполнения рабочего процесса может привести к непредвиденным последствиям. Вместо этого используйте конечную точку управления экземпляром рабочего процесса, чтобы среда выполнения рабочего процесса завершила экземпляр. Если нужно удалить большое количество экземпляров из представления, убедитесь, что отсутствуют активные среды выполнения, которые могут работать с данными экземплярами.
Представление ServiceDeployments
Представление ServiceDeployments содержит сведения о развертывании для всех размещенных веб-служб рабочих процессов (IIS/WAS). Каждый экземпляр рабочего процесса, размещенный в Интернете, будет содержать ServiceDeploymentId , ссылающийся на строку в этом представлении.
Имя столбца | Тип столбца | Description |
---|---|---|
ServiceDeploymentId | BigInt | Первичный ключ для этого представления. |
SiteName | Nvarchar(max) | Представляет имя сайта, содержащего службу рабочего процесса (например , веб-сайт по умолчанию). |
RelativeServicePath | Nvarchar(max) | Представляет виртуальный путь относительно узла, указывающего на службу рабочего процесса. (например , /app1/PurchaseOrderService.svc). |
RelativeApplicationPath | Nvarchar(max) | Представляет виртуальный путь относительно узла, который указывает на приложение, содержащее службу рабочего процесса. (например , /app1). |
ServiceName | Nvarchar(max) | Представляет имя службы рабочего процесса. (например, PurchaseOrderService). |
ServiceNamespace | Nvarchar(max) | Представляет пространство имен службы рабочего процесса. (например, MyCompany). |
Представление ServiceDeployments также содержит триггер Delete. Пользователи с соответствующими разрешениями могут выполнять инструкции удаления в этом представлении, чтобы удалить элементы ServiceDeployment из базы данных. Обратите внимание на следующие условия.
удаление элементов из этого представления может быть дорогостоящей операцией, так как перед ее выполнением должна быть заблокирована вся база данных. Это необходимо, чтобы избежать ситуации, когда экземпляр рабочего процесса может ссылаться на несуществующий элемент ServiceDeployment. Выполняйте удаление из этого представления только во время простоев и в периоды технического обслуживания.
Любая попытка удалить строку ServiceDeployment, на которую ссылается запись в представлении экземпляров , приведет к отсутствии операции. Можно удалять только строки ServiceDeployment, на которые отсутствуют ссылки.
Представление InstancePromotedProperties
Представление InstancePromotedProperties содержит сведения обо всех повышенных свойствах, указанных пользователем. Свойство повышенного уровня функционирует как свойство первого класса, которое пользователь может использовать в запросах для извлечения экземпляров. Например, пользователь может добавить продвижение PurchaseOrder, которое всегда хранит стоимость заказа в столбце Value1 . Это даст пользователю возможность выполнять запрос для всех заказов на покупку, стоимость которых превышает определенное значение.
Тип столбца | Тип столбца | Description |
---|---|---|
InstanceId | UniqueIdentifier | Идентификатор экземпляра рабочего процесса |
EncodingOption | TinyInt | Описывает кодировку, используемую для сериализации повышенных свойств данных двоичного типа. - 0 — кодирование без кодирования - 1 — GZipStream |
НазваниеАкции | Nvarchar(400) | Имя повышения, связанного с данным экземпляром. Имя PromotionName необходимо, чтобы добавить контекст к универсальным столбцам в этой строке. Например, PromotionName для PurchaseOrder может указывать, что Value1 содержит стоимость заказа, Value2 содержит имя клиента, разместившего заказ, Value3 содержит адрес клиента и т. д. |
Value[1-32] | SqlVariant | Value[1-32] содержит значения, которые можно сохранить в столбце SqlVariant. Одно повышение не может содержать более 32 значений SqlVariant. |
Value[33-64] | Varbinary(max) | Value[33-64] содержит сериализованные значения. Например, Value33 может содержать изображение покупаемого товара в формате JPEG. Одно повышение не может содержать более 32 свойств двоичного типа. |
Представление InstancePromotedProperties привязано к схеме, то есть пользователи могут добавлять индексы по одному или нескольким столбцам, чтобы оптимизировать запросы к представлению.
Примечание.
Для индексированного представления требуется больше памяти и увеличиваются затраты на обработку. Дополнительные сведения см. в статье об улучшении производительности с помощью индексированных представлений SQL Server 2008.