VastbaseE100

基于开源技术的HTAP数据库管理系统。性能优异,稳定可靠,提供诸多专属领域特性。

Menu

VACUUM

VACUUM - 垃圾收集并可选地分析数据库

语法格式

VACUUM [ ( option [, ...] ) ] [ table_and_columns [, ...] ]
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ table_and_columns [, ...] ]

其中option可以是下列之一:

    FULL
    FREEZE
    VERBOSE
    ANALYZE
    DISABLE_PAGE_SKIPPING

而table_and_columns是:

    table_name [ ( column_name [, ...] ) ]

说明

VACUUM 回收死元组占用的存储空间。在正常的Vastbase E100操作中,更新删除或废弃的元组不会从其表中物理删除;它们一直存在,直到VACUUM 完成。因此,有必要定期执行 VACUUM ,特别是在频繁更新的表上。

如果没有 table_and_columns 列表, VACUUM将处理当前用户有权抽真空的当前数据库中的每个表和物化视图。使用列表,VACUUM 仅处理那些表。

VACUUM ANALYZE 为每个选定的表执行 VACUUM 然后执行 ANALYZE。这是日常维护脚本的便捷组合形式。有关其处理的更多详细信息,请参见ANALYZE。

普通 VACUUM (没有 FULL)只是回收空间并使其可以重复使用。这种形式的命令可以与表的正常读取和写入并行操作,因为不能获得排他锁。但是,额外的空间不会返回给操作系统(在大多数情况下);它只是在同一个表中可以重复使用。VACUUM FULL将表的全部内容重写为没有额外空间的新磁盘文件,允许将未使用的空间返回给操作系统。此表单速度要慢得多,并且在处理每个表时需要对其进行独占锁定。

当选项列表被括号括起时,可以按任何顺序写入选项。如果没有括号,则必须按照上面显示的顺序指定选项。在Vastbase E100 9.0中添加了带括号的语法;不建议使用的语法已弃用。

参数说明

  • FULL

    选择”完全”真空,可以回收更多空间,但需要更长时间并专门锁定表格。此方法还需要额外的磁盘空间,因为它会写入表的新副本,并且在操作完成之前不会释放旧副本。通常,只有在需要从表格中回收大量空间时才应使用此选项。

  • FREEZE

    选择积极的”冻结”元组。指定 FREEZE 相当于在 vacuum_freeze_min_age和 vacuum_freeze_table_age参数说明设置为零的情况下执行 VACUUM。在重写表时始终执行积极冻结,因此在指定 FULL 时此选项是多余的。

  • VERBOSE

    为每个表打印详细的真空活动报告。

  • ANALYZE

    更新计划程序用于确定执行查询的最有效方法的统计信息。

  • DISABLE_PAGE_SKIPPING

    通常, VACUUM 将根据 visibility map跳过页面。可以跳过已知冻结所有元组的页面,并且可以跳过已知所有元组都可见的元组的页面,除非执行激进的真空。此外,除了执行激进的真空以外,可以跳过某些页面以避免等待其他会话完成使用它们。此选项禁用所有页面跳过行为,并且仅在可见性映射的内容可疑时才使用,仅当存在导致数据库损坏的硬件或软件问题时才会使用此选项。

  • table_name

    特定表或物化视图的名称(可选择模式限定)为vacuum。如果指定的表是分区表,则对其所有叶子分区进行清理。

  • column_name

    要指定的特定列的名称分析。默认为所有列。如果指定了列列表,则还必须指定ANALYZE 。

输出

指定 VERBOSE 时, VACUUM会发出进度消息以指示当前正在处理哪个表。还打印有关表格的各种统计数据。

注意事项

要真空吸尘 table ,通常必须是 table的主人或超级用户。但是,允许数据库所有者清空其数据库中的所有表,共享目录除外。 (共享目录的限制意味着真正的数据库范围 VACUUM 只能由超级用户执行。)_VACUUM 将跳过调用用户无权真空的任何表。

VACUUM 无法在事务块内执行。

对于具有GIN索引的表, VACUUM(以任何形式)还通过将挂起的索引条目移动到主GIN索引结构中的适当位置来完成任何挂起的索引插入。我们建议经常对活动的生产环境数据库进行抽真空(至少每晚一次),以便删除死行。添加或删除大量行后,最好为受影响的表发出VACUUM ANALYZE命令。这将使用所有最近更改的结果更新系统目录,并允许Vastbase E100查询计划程序在规划查询时做出更好的选择。

建议不要将 FULL选项用于日常使用,但在特殊情况下可能会有用。例如,当您删除或更新表中的大多数行并希望表实际缩小以占用更少的磁盘空间并允许更快的表扫描。VACUUM FULL 通常会缩小表格而不是简单的 VACUUM 。

VACUUM 会导致I / O流量大幅增加,这可能会导致其他活动会话性能下降。因此,有时建议使用基于成本的真空延迟功能。

Vastbase E100包括一个”autovacuum”设施,可以自动化常规真空维护。

示例

要清理单个表 onek ,请为优化程序分析它并打印详细的真空活动报告:

VACUUM (VERBOSE, ANALYZE) onek;