首页 > 其他分享 >openGauss 例行维护表

openGauss 例行维护表

时间:2024-05-13 14:45:27浏览次数:13  
标签:customer FULL 数据库 例行 VACUUM openGauss ANALYZE 维护

例行维护表

为了保证数据库的有效运行,数据库必须在插入/删除操作后,基于客户场景,定期做VACUUM FULL和ANALYZE,更新统计信息,以便获得更优的性能。

相关概念

使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因:

  • VACUUM FULL可回收已更新或已删除的数据所占据的磁盘空间,同时将小数据文件合并。
  • VACUUM对每个表维护了一个可视化映射来跟踪包含对别的活动事务可见的数组的页。一个普通的索引扫描首先通过可视化映射来获取对应的数组,来检查是否对当前事务可见。若无法获取,再通过堆数组抓取的方式来检查。因此更新表的可视化映射,可加速唯一索引扫描。
  • VACUUM可避免执行的事务数超过数据库阈值时,事务ID重叠造成的原有数据丢失。
  • ANALYZE可收集与数据库中表内容相关的统计信息。统计结果存储在系统表PG_STATISTIC中。查询优化器会使用这些统计数据,生成最有效的执行计划。

操作步骤

  1. 使用VACUUM或VACUUM FULL命令,进行磁盘空间回收。

    • VACUUM

      对表执行VACUUM操作

      openGauss=# VACUUM customer;
      
      VACUUM
      

      可以与数据库操作命令并行运行。(执行期间,可正常使用的语句:SELECT、INSERT、UPDATE和DELETE。不可正常使用的语句:ALTER TABLE)。

      对表分区执行VACUUM操作

      openGauss=# VACUUM customer_par PARTITION ( P1 );
      
      VACUUM
      
    • VACUUM FULL

      openGauss=# VACUUM FULL customer;
      
      VACUUM
      

      需要向正在执行的表增加排他锁,且需要停止其他所有数据库操作。

  2. 使用ANALYZE语句更新统计信息。

    openGauss=# ANALYZE customer;
    
    ANALYZE
    

    使用ANALYZE VERBOSE语句更新统计信息,并输出表的相关信息。

    openGauss=# ANALYZE VERBOSE customer;
    
    ANALYZE
    

    也可以同时执行VACUUM ANALYZE命令进行查询优化。

    openGauss=# VACUUM ANALYZE customer;
    
    VACUUM
    

    说明:
    VACUUM和ANALYZE会导致I/O流量的大幅增加,这可能会影响其他活动会话的性能。因此,建议通过“vacuum_cost_delay”参数设置《数据库参考》中“GUC参数说明 > 资源消耗 > 基于开销的清理延迟”。

  3. 删除表

    openGauss=# DROP TABLE customer;
    openGauss=# DROP TABLE customer_par;
    openGauss=# DROP TABLE part;
    

    当结果显示为如下信息,则表示删除成功。

    DROP TABLE
    

维护建议

  • 定期对部分大表做VACUUM FULL,在性能下降后为全库做VACUUM FULL,目前暂定每月做一次VACUUM FULL。
  • 定期对系统表做VACUUM FULL,主要是PG_ATTRIBUTE。
  • 启用系统自动清理线程(AUTOVACUUM)自动执行VACUUM和ANALYZE,回收被标识为删除状态的记录空间,并更新表的统计数据。

详情查看:https://opengauss.org

详情查看:https://docs-opengauss.osinfra.cn

标签:customer,FULL,数据库,例行,VACUUM,openGauss,ANALYZE,维护
From: https://www.cnblogs.com/renxyz/p/18189145

相关文章

  • openGauss 例行维护
    例行维护检查时间一致性检查应用连接数例行维护表例行重建索引数据安全维护建议为保证openGauss数据库中的数据安全,避免丢失数据,非法访问数据等事故发生,请仔细阅读以下内容。慢SQL诊断......
  • openGauss 快速设置
    快速设置首先在postgresql.conf中设置配置选项:wal_level=logical对于一个基础设置来说,其他所需的设置使用默认值就足够了。需要调整pg_hba.conf以允许复制(这里的值取决于实际的网络配置以及用于连接的用户):hostallrepuser0.0.0.0/0sha256然后在发布......
  • openGauss 逻辑复制
    逻辑复制逻辑解码使用逻辑复制工具复制数据发布订阅详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss 逻辑备份与恢复
    逻辑备份恢复gs_dumpgs_dumpallgs_restore详情查看:https://opengauss.org详情查看:https://docs-opengauss.osinfra.cn......
  • openGauss 例行重建索引
    例行重建索引背景信息数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。数据库支持的索引类型为B-tree索引,例行重建索引可有效的提高查询效率。如果数据发生大量删除后,索引页面上的索引键将被删除,导致索引页面数量的减少......
  • openGauss 逻辑解码概述
    逻辑解码概述功能描述openGauss对数据复制能力的支持情况为:支持通过数据迁移工具定期向异构数据库(如Oracle等)进行数据同步,不具备实时数据复制能力。不足以支撑与异构数据库间并网运行实时数据同步的诉求。openGauss提供了逻辑解码功能,通过反解xlog的方式生成逻辑日志。目标数......
  • openGauss 逻辑复制支持DDL操作
    逻辑复制支持DDL操作功能描述Vastbase在逻辑复制过程中支持如下DDL操作:CREATE/DROPTABLE|TABLEPARTITIONCREATE/DROPINDEX注意事项只支持行存表的DDL操作。不支持列存,ustore存储引擎。在订阅端手动删除表会导致DDL同步失败,发布订阅阻塞。不支持在对表进行相......
  • openGauss 配置设置
    配置设置发布订阅要求设置一些配置选项。在发布者端,wal_level必须被设置为logical,而max_replication_slots中设置的值必须至少是预期要连接的订阅数加上保留给表同步的连接数。发布端参数max_wal_senders应满足:max_wal_senders>=max_replication_slots+同时连接的物理复制槽......
  • openGauss 内存不足问题
    内存不足问题问题现象客户端或日志里出现错误:memoryusagereachthemax_dynamic_memory。原因分析出现内存不足可能因GUC参数max_process_memory值设置较小相关,该参数限制一个openGauss实例可用最大内存。处理分析通过工具gs_guc适当调整max_process_memory参数值。注意需......
  • openGauss 慢SQL诊断
    慢SQL诊断背景信息在SQL语句执行性能不符合预期时,可以查看SQL语句执行信息,便于事后分析SQL语句执行时的行为,从而诊断SQL语句执行出现的相关问题。前提条件数据库实例运行正常。查询SQL语句信息,需要正确设置GUC参数track_stmt_stat_level。只能用系统管理员和监控管理员权限......