6

在 Sitecore 控制面板中,有一个执行数据库清理的命令。这是否会清理主数据库和 Web 数据库中的 History、PublishQueue 和 EventQueue 表?

上述表格的 web.config 中也有清理任务。如果它们仅在 CMS 服务器上启用,它们是否会在主数据库和 Web 数据库中执行清理?

谢谢

4

1 回答 1

12

我假设您指的是“控制面板/数据库”屏幕上的“清理数据库”选项。

  • 该命令提示您选择要清理的数据库(web、master、core)。
  • 我使用 DotPeek 查看了 Sitecore.Data.DataProviders.Sql.SqlDataProvider 类中 CleanupDatabase 方法的实现,它执行以下任务:

    1. 删除具有父项但父项不在项树中的项。
    2. 删除无效的语言数据。
    3. 删除不存在的项目的字段。
    4. 删除孤立的项目。
    5. 删除未使用的 blob 记录。
    6. 从步骤 4 中删除的孤立项中删除字段。
    7. 重建 Descendants 表(存储父/子关系)。
    8. 清除所有缓存。
  • 我已确认此任务不会清除 History 或 PublishQueue 表。我的 EventQueue 表是空的,所以我无法对此进行测试。

  • Web.config 清理任务遍历所有 <databases<>databases> 节点,因此即使从 CMS 环境它们也应该作用于 Web 数据库。这可以通过在此作业运行之前和之后检查其中一个表来快速证明。

注意:此分析基于反映 Sitecore 6.6.0 版本 121203。

于 2013-02-03T05:25:28.193 回答