数据仓库服务 GAUSSDB(DWS)-性能优化之业务降IO优化:场景1:列存小CU膨胀

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

场景1:列存小CU膨胀

某业务SQL查询出390871条数据需43248ms,分析计划主要耗时在Cstore Scan。

Cstore Scan的详细信息中,每个DN扫描出2w左右的数据,但是扫描了有数据的CU(CUSome)155079个,没有数据的CU(CUNone) 156375个,说明当前小CU、未命中数据的CU极多,即CU膨胀严重。

触发因素:对列存表(尤其是分区表)进行高频小批量导入会造成CU膨胀。

处理方法

  1. 列存表的数据入库方式修改为攒批入库,单分区单批次入库数据量大于DN个数*6W为宜。
  2. 如果确因业务原因无法攒批,则考虑次选方案,定期VACUUM FULL此类高频小批量导入的列存表。
  3. 当小CU膨胀很快时,频繁VACUUM FULL也会消耗大量IO,甚至加剧整个系统的IO瓶颈,这时需考虑整改为行存表(CU长期膨胀严重的情况下,列存的存储空间优势和顺序扫描性能优势将不复存在)。
support.huaweicloud.com/trouble-dws/dws_09_0111.html