数据仓库服务 GAUSSDB(DWS)-VACUUM FULL执行慢:场景四:列存表使用了局部聚簇(PCK)时,VACUUM FULL执行慢

时间:2024-05-07 20:29:47

场景四:列存表使用了局部聚簇(PCK)时,VACUUM FULL执行慢

对列存表执行VACUUM FULL时,如果存在PCK,就会将PARTIAL_CLUSTER_ROWS中多条记录全都加载到内存中再进行排序,如果表较大或psort_work_mem设置较小,会导致PCK排序时产生下盘(数据库选择将临时结果暂存到磁盘),进行外部排序;一旦进行外部排序,时间消耗就会增加很多。

处理方法:根据表中数据的tuple length,合理调整PARTIAL_CLUSTER_ROWS和psort_work_mem的大小。
  1. 执行以下语句查看表定义。回显中存在“PARTIAL CLUSTER KEY”信息,表示存在PCK。
    1
    SELECT * FROM pg_get_tabledef('table name');
    

  2. 登录DWS管理控制台,左侧选择“集群管理”。
  3. 单击对应的集群名称,进入集群详情页。
  4. 左侧选择“参数修改”,在搜索栏中输入psort_work_mem进行搜索,将CN参数值和DN参数值同时调大,单击“保存”。
  5. 再重新执行VACUUM FULL操作。
support.huaweicloud.com/trouble-dws/dws_09_0124.html