GBase 8a
运维管理
文章
SQL运行机制与原理及其常见优化方法
发表于2024-10-30 15:52:02119次浏览3个评论
1. SQL产生性能问题的原因及优化方法
在GBASE8a运维过程中,经常会遇到以下问题。其原因 一般有以下几种

首先,应排除受操作系统资源影响问题,可通过以下命令进行逐项排查。

也可通过nmon工具进行直观排查

cpu出现瓶颈可参考如下现象

内存 磁盘 出现瓶颈,可参考如下

在操作系统发现硬件问题,可参考如下。以及如何定义系统慢,如何制定一个比较基线

还可以检查系统中是否存在锁表的情况,独占锁是E锁,共享是S锁,

一般产生锁表的原因有以下几种

DML和DQL并发时,其互相影响的机制如下

分布键选择不当,会造成数据分布不均

分布键选择,应遵循以下原则

核查数据是否均匀,可以参考以下排查方式

关联时,分布键选择不当,也会影响查询性能



关联时产生笛卡尔积也会影响性能

此外还有一些其他原因造成的性能问题,需要具体问题具体分析

2. SQL优化分析方法,可参考以下几种方式
(1)通过执行计划分析

打印出执行计划,分析关联时,是否大表产生复制表或重哈希的情况

经过优化后的效果,执行计划改变

(2)通过trace日志也可以进行分析优化

集群层trc日志

节点层trace日志


3. SQL运行的机制与原理(节点层为例)
由于集群层只负责调度,基本不参与计算,因此,以节点层sql运行机制举例。
集群层接收到应用层的sql任务后,会经过优化、分解成每个数据节点上执行的子任务,其中包括对表的数据的评估,建空临时表,数据分发,关联数据,聚合,排序
后,再返还结果集到集群层。以下主要是节点层trc日志中展示的效果


此处的关联,是sql优化过程中,经常会出现瓶颈的地方,应着重分析此类步骤的耗时情况。



评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526