
# DWS哪些系统表不能做VACUUM FULL
9.1.1.100版本以前集群，DWS的系统表都可以做VACUUM FULL，但是会持有八级锁，涉及这些系统表的业务会被阻塞。
9.1.1.100及以上集群版本，支持通过设置[allow_system_table_vacuum_full](https://support.huaweicloud.com/devg-911-dws/dws_04_0945.html)，控制是否允许对系统表执行VACUUM FULL。
根据数据库版本不同，建议如下：
#### 8.1.3及以上版本
- 8.1.3及以上版本的集群，AUTO VACUUM默认是打开的（由GUC参数**autovacuum** 控制），用户通过设置对应的GUC参数后，系统会自动触发所有系统表和用户的**行存表** 进行VACUUM FULL，用户不需要手动执行vacuum。
  - **autovacuum_max_workers** = 0，系统表和普通表都不会触发。
  
  - **autovacuum**= off，普通表不会触发，但系统表会触发。
   
- 以上仅针对**行存表** 的AUTO VACUUM触发，如果需要针对**列存表** 做自动触发VACUUM，还需要用户在管理控制台上配置智能调度任务。具体参见[运维计划](https://support.huaweicloud.com/mgtg-dws/dws_01_1162.html)。
 
#### 8.1.1及历史版本
1. 以下系统表在做VACUUM FULL时会影响所有业务，请选择空闲时间窗或停止业务时操作。
   - pg_statistic （统计信息，建议不要清理，会影响业务查询性能）
   
   - pg_attribute
   
   - pgxc_class
   
   - pg_type
   
   - pg_depend
   
   - pg_class
   
   - pg_index
   
   - pg_proc
   
   - pg_partition
   
   - pg_object
   
   - pg_shdepend
    
2. 以下系统表主要影响资源的监控和表大小的查询接口，不影响其他业务。
   - gs_wlm_user_resource_history
   
   - gs_wlm_session_info
   
   - gs_wlm_instance_history
   
   - gs_respool_resource_history
   
   - pg_relfilenode_size
    
3. 其余系统表不占用空间，无需清理。
4. 建议日常运维活动中，每周监控以下系统表的大小，如果一定要回收这些空间，优先处理关键系统表。
   语句如下：
   ```
   SELECT c.oid,c.relname, c.relkind, pg_relation_size(c.oid) AS size  FROM pg_class c WHERE c.relkind IN ('r') AND c.oid <16385 ORDER BY size DESC;
   ```
   
 
