ETL中,分区表子表未及时收集统计信息,导致sql执行耗时很长

文章目录

环境

系统平台:银河麒麟 (X86_64)

版本:9.0.3

症状

ETL场景:

有表A,A分区子表 A_p20250101,A_p20250102等,按天分区;

有表B,B分区子表 B_p20250101,B_p20250102等,按天分区;

ETL流程如下:

从流程图中可以看到,node1 生成A_p20250101的数据后,立即执行node2,node2使用node1生成的A_p20250101作为原表之一。

问题现象:

单独执行node2节点,sql执行很快;执行整个流程时,node2执行非常慢。

问题原因

通过执行计划看到执行快时是表c驱动表A_p20250101,执行慢时是表A_p20250101驱动表c;执行计划不合理导致执行很慢。

解决方案

通过排查确认是node1生成表A_p20250101数据后,立即执行了node2,表A_p20250101未及时收集统计信息,使用了错误的执行计划,导致执行慢;在存在类似情况的所有sql前都添加analyze后,问题解决。

相关推荐
xxjj998a12 小时前
Laravel5.x全版本特性解析
数据库·mysql·adb
小碗羊肉12 小时前
【MySQL | 第九篇】SQL优化
数据库·sql·mysql
xxjj998a13 小时前
Laravel6.x核心特性全解析
数据库·mysql·adb
m0_7485548120 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
早日退休!!!21 小时前
《数据结构选型指南》笔记
数据结构·数据库·oracle
xcLeigh21 小时前
KES数据库性能优化实战
数据库·sql·性能优化·sql优化·数据性能
阿正呀21 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
yoyo_zzm21 小时前
Laravel9.x新特性全解析
数据库·mysql·nginx
2501_901200531 天前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
m0_495496411 天前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python