数据仓库服务 GAUSSDB(DWS)-性能优化之业务降IO优化:场景1:列存小CU膨胀
场景1:列存小CU膨胀
某业务SQL查询出390871条数据需43248ms,分析计划主要耗时在Cstore Scan。
Cstore Scan的详细信息中,每个DN扫描出2w左右的数据,但是扫描了有数据的CU(CUSome)155079个,没有数据的CU(CUNone) 156375个,说明当前小CU、未命中数据的CU极多,即CU膨胀严重。
触发因素:对列存表(尤其是分区表)进行高频小批量导入会造成CU膨胀。
处理方法
- 列存表的数据入库方式修改为攒批入库,单分区单批次入库数据量大于DN个数*6W为宜。
- 如果确因业务原因无法攒批,则考虑次选方案,定期VACUUM FULL此类高频小批量导入的列存表。
- 当小CU膨胀很快时,频繁VACUUM FULL也会消耗大量IO,甚至加剧整个系统的IO瓶颈,这时需考虑整改为行存表(CU长期膨胀严重的情况下,列存的存储空间优势和顺序扫描性能优势将不复存在)。
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB底层硬件_gaussdb介绍_高斯数据库底层硬件_华为云
- 华为云资料 2021年 7月刊
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- 如何进行日志采集和转储_日志平台_日志接入_日志转储