通过


删除已完成的系统作业和进程日志以符合保留策略

管理已完成的系统作业和进程日志对于维护数据隐私合规性并确保 Dataverse 中的最佳系统性能至关重要。

系统作业 AsyncOperation 表存储系统作业。 实际的数据库表名称为 AsyncOperationBase。 系统作业表示异步操作,包括已注册的工作流、插件和后台操作,诸如批量删除、批量导入和汇总操作。

在 Dataverse 组织中启动异步工作流时,将在 AsyncOperation 表中创建一条记录来跟踪其进度。 在进程日志(WorkflowLog)表中创建了更多记录,以保留工作流执行的日志。 这些日志的实际数据库表名称为 WorkflowLogBase。 业务流程还会在 WorkflowLog 表中存储阶段转换和动作的日志。

每次系统作业完成时,其结果都会记录为 AsyncOperation 记录中的系统作业。 已完成的系统作业是在 Dataverse 中记录各种自动化操作结果的记录。 随着时间的推移,这些记录会累积,如果不加以管理,可能会影响系统存储和性能。

如果您的组织严重依赖工作流或业务流程流,关联的表可能会随着时间的推移显着增加,有可能导致性能下降,数据库存储消耗过多。

已完成的系统作业的类型及其状态

系统任务

  • 删除插件跟踪日志记录
  • 删除已完成的系统作业
  • 删除同步工作流的已完成处理会话

已完成的系统作业根据其完成状态分为三种主要类型:

  • 成功:已成功完成且未出错的作业。
  • 失败:遇到错误且未按预期完成的作业。
  • 已取消:用户干预或系统约束在完成前已停止的作业。

用于自动删除已完成的系统作业的删除服务

默认情况下,系统提供删除服务以自动删除成功完成、失败或取消的系统作业。 默认值在 OrganizationSettingsEditor 工具中设置,可以使用该工具或从 “环境设置” 页进行更改。

使用 OrganizationSettingsEditor 更新保留策略

若要检查此设置,请执行以下作:

  1. 安装 OrganizationSettingsEditor 工具
  2. 添加和编辑 EnableSystemJobCleanup
  3. EnableSystemJobCleanup 设置为“true”(如果尚未将它设置为 true)。

设置保留策略

有三个参数允许设置不同的保留期。

  • SucceededSystemJobPersistenceInDays 用于成功作业。

  • FailedSystemJobPersistenceInDays 用于失败作业。

  • 已取消作业的 CanceledSystemJobPersistenceInDays

使用“环境设置”页更新保留策略(预览版)

[本部分是预发行文档,可能会更改。]

重要

  • 这是一项预览功能。
  • 预览功能不适用于生产用途,并且可能具有受限功能。 这些功能受补充使用条款的约束,并在正式发布之前可用,以便客户提前访问并提供反馈。
  1. 登录到 Power Platform 管理中心
  2. 在导航窗格中选择管理
  3. 管理窗格中,选择环境。 然后选择一个环境。
  4. 选择 “设置”。
  5. 选择审核和日志>设置系统作业删除保留策略(预览版)。
  6. 选中“ 允许删除服务删除系统作业”复选框。
  7. 选择或输入每种类型的系统作业的时间段,包括 成功的作业失败的作业已取消的作业
  8. 选择“保存”

备注

此删除服务将删除系统作业。 已删除的系统作业不再显示在 “所有系统作业 ”或“ 所有批量删除系统作业 ”列表中。 有一个名为 “删除已完成的系统作业”的定期作业。 删除服务处于打开状态时,此作业将暂停。

批量删除作业

重要

使用删除服务时,此作业处于 挂起 状态。

所有环境都配置了现成的批量删除作业,用于删除 30 天之前且成功完成的工作流系统作业。 客户可以配置其他批量删除来删除 AsyncOperation 记录。 我们建议设置作业来删除已超过 30 天的完成的系统作业—无论类型或结果如何。 此作业帮助防止 AsyncOperation 表累积过多的记录。

所有环境都包括一个内置的批量删除作业,用于删除超过 30 天的成功完成的工作流系统作业。 客户可以创建更多批量删除作业来删除 AsyncOperation 记录。 我们建议配置一个作业,来删除任何超过 30 天的已完成的系统作业—无论类型或结果如何,以防止 AsyncOperation 表中出现不必要的累积。

可以使用批量删除系统作业从 AsyncOperation 和 WorkflowLog 表中删除不需要的记录。

查看批量删除系统作业

批量记录删除作业会显示已运行系统作业的历史记录以及结果。

备注

此删除服务将删除系统作业并删除的批量删除系统作业不再显示在 “所有系统作业 ”或“ 所有批量删除系统作业 ”列表中。

  1. 登录到 Power Platform 管理中心
  2. 在导航窗格中,选择“ 管理”。
  3. 管理窗格中,选择环境
  4. 环境页面上,选择一个环境。
  5. 在命令栏中,选择设置
  6. 展开数据管理,然后选择批量删除

批量删除网格中,使用视图选择器来显示已完成、正在进行、待定和定期批量删除系统作业。

定期批量删除系统作业视图显示定期批量删除系统作业的现成的作业定义。

当您打开这些系统作业记录中的一个记录,您可以看到识别要删除哪些记录所用的查询以及作业运行的计划。 对于这些现成系统作业,虽然无法修改系统作业使用的查询,但可以修改作业运行的计划。

如果切换视图来显示已计划、正在进行或已完成的作业,您可以在查看记录时使用操作菜单中可用的选项取消、继续或推迟作业。

创建自己的批量删除作业

如果 删除服务 或现装系统批量删除作业不符合组织的需求,则可以创建自己的批量删除作业。

首先,通过完成以下步骤关闭删除服务。

  1. 添加和编辑 EnableSystemJobCleanup
  2. EnableSystemJobCleanup 设置为“false”。

批量删除网格中,选择命令栏上的新建,定义要删除的记录的查询。 使用预览功能查看查询返回的记录,验证它是否捕获了预期的数据集。

若要清理 AsyncOperation 表中的工作流记录,在查找实体下拉列表中,选择系统作业表;在使用已保存视图下拉列表中,选择[新建]创建您自己的查询。 您只能删除已完成的工作流。 等待运行或当前正在进行的工作流不能也不应该被您的系统作业删除。

向查询中添加以下条件:

  • 系统作业类型 等于 工作流可选)- 目标工作流记录。
  • 状态等于已完成 - 只能完成已完成的工作流。
  • [可选] 对状态描述等于成功/失败/已取消进行筛选 - 对于已完成的状态有效。
  • [可选] 筛选完成时间字段以仅删除较早的工作流。
  • [可选] 要应用的任何其他筛选器。

接下来,设置批量删除作业的运行频率。 您可以创建一次性批量删除作业或定义计划以允许您的作业以设定的时间间隔运行。

基于优先级的异步操作批量删除作业

为了解除对拥有大量异步操作的客户的封锁,我们为异步操作清理引入了基于优先级的批量删除功能。 默认情况下,此功能对所有组织可用。 以下是一些需要注意的要点:

  • 批量删除优先级仅适用于 AsyncOperation 实体的新创建的非定期批量删除作业。
  • 要最大限度地提高此功能的有效性、优化作业性能,创建具有不同筛选条件的作业—如不同的日期范围、系统作业类型、状态代码或其他条件。
  • 组织最多可以定义五个优先作业。 会以默认优先级创建更多作业。
  • 无论队列中其他实体的作业数量如何,始终可以创建一个具有优先级的 AsyncOperation 作业。
  • 批量删除作业的创建步骤没有变化。

插件跟踪日志

插件 可用于异步操作。 例如,在创建帐户时创建任务。 测试插件时,可以将 PluginTraceLogSetting 设置为所有或例外。 可以在 Power Platform 环境设置应用中查看插件跟踪日志。

为了自动清理插件跟踪日志,Dataverse 提供了一个定期作业,用于删除超过一天的记录。

  • 此作业每天运行,确保系统不会无限期保留不必要的插件跟踪日志。
  • 删除过程有助于释放存储空间,并使系统高效执行。

尽管每天可以删除插件跟踪日志,但建议不要在生产环境中允许此选项,因为它可能会影响系统性能和存储。 相反,请确保在生产环境中将PluginTraceLogSetting设置为关闭。 此最佳做法可确保插件跟踪日志表无法不受控制地增长,并导致数据库达到其容量限制。

同步工作流的流程会话

当用户运行或执行对话进程时,将创建进程会话(对话会话)。 它包含有关运行的日志,例如执行该任务的用户、进程启动时间以及执行的操作。

为了自动清理进程会话,Dataverse 提供了一个定期作业,用于删除超过一天的记录。

  • 此作业每天运行,确保系统不会无限期保留不必要的进程会话。
  • 删除过程有助于释放存储空间,并使系统高效执行。

用于设计工作流的最佳实践

从工作流表中删除不必要的记录后,考虑优化工作流设计,来帮助减缓未来的表增加

对于异步工作流,我们建议在工作流编辑器中启用自动删除已完成工作流作业(以节省磁盘空间)。 此设置允许系统自动删除成功完成作业的日志,从而节省存储空间。 将始终保留失败工作流执行的日志以用于故障排除。

将“工作流作业保留”设置为自动删除已完成的工作流作业。

对于同步工作流,建议在工作流编辑器中启用保留遇到错误的工作流作业的日志。 此设置可确保保留失败执行的日志以进行故障排除,同时自动删除成功运行的日志以节省空间。

设置“工作流日志保留”以保留遇到错误的工作流作业的日志。

AsyncOperation 文件容量使用情况

从历史上看,整个异步操作上下文过去经常直接在 AsyncOperation 表(作为 Data 属性)中序列化,因此,如果大型记录(如附件)存在异步插件注册,那么这会导致大小增长非常快速。 自 2021 年初以来,异步操作的数据部分已移至文件存储。 因此,异步操作数据大小部分计入数据库容量,部分计入文件容量。 此切换可以帮助降低成本—因为文件容量的费率低于数据库容量,并可以通过对 AsyncOperation 表启用更高效的查询来提高整体性能。

备注

无法直接删除与 AsyncOperation 记录相关的文件。 若要回收文件容量,查看本文中所述的 AsyncOperation 记录的保留和清理策略。 当 AsyncOperation 记录删除时,其相应的文件也会删除。

有关 Dataverse 存储模型和报告的详细信息,请参阅 新的 Microsoft Dataverse 存储容量

减少数据库存储
使用批量删除删除大量特定的有针对性的数据
Microsoft Dataverse实时工作流
经典 Dataverse 后台工作流
自动删除已完成的后台工作流作业
异步服务