《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版解析与实践(下)——三、SQL性能调优(上)

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版解析与实践(下)——三、SQL性能调优(上)

1. Cascade框架SQL优化器

 

新一代cascade框架的SQL优化器,面向全并行执行架构,代价优化CBO和规则优化RBO相结合,实现复杂SQL免调优。

 

cascade框架的SQL优化器具备以下功能:

 

Top-Down路径搜索框架,搜索和路径选择更全面精准,避免出现局部查询路径最优解;

子查询自动改写为分布式JOIN, 实现并行计算,规避手工改写调优;

SQL优化阶段定义动态分区裁剪,即支持确定性过滤条件,也支持参数化的过滤条件,减少I/O。

 

2. 向量化计算引擎

 

image.png

 

新一代计算引擎Odyssey,消除火山模型碎片化内存分配。

采用LLVM进行动态代码生成(CodeGen),提升表达式计算性能。

利用CPU的SIMD技术,指令级并行,进一步提升性能。

 

3. SQL诊断

 

在SQL执行比较慢时,可以对SQL进行诊断。

 

首先,pg_stat_activity是一个非常有用的视图,可以分析排查当前运行的SQL任务以及一些异常问题。pg_stat activity每行展示的是一个“process”的相关信息,这里的“process”可以理解为一个用户连接。

然后,通过pg_stat_activity视图查看当前耗时较长的SQL。

 

查看耗时较长的查询语句:

select current_timestamp - query_start as runtime, datname, usename, query from pg_stat_activity where state !='idle' order by 1 desc;

 

 

参数说明

Runtime:语句执行的时长

Datname:执行语句的数据库名

Usename:执行语句的用户名

Waiting:是否在等待

waiting_reason:等待的原因

query:执行的语句,有长度截断,可通过track_activity_query_size调整

 

4. 执行计划两种收集模式

 

explain:显示执行计划,不真正执行语句,在计划中显示估算信息。

Explain analyze:显示执行计划,并且真正执行语句,在计划中显示真实执行信息。

 

执行计划中常见算子:

 

扫描算子Scan:Seq Scan,index scan,Bitmap Index Scan + Bitmap Heap Scan

关联算子Join:Hash Join,Nested Loop Join,Merge Join

聚合算子Aggregate:Hash Aggregate,Group Aggregate

数据重分布算子Motion:Redistribute Motion,Broadcast Motion,Gather Motion

其他算子:Hash,Sort,Limit,Append,etc

 

5. 执行计划

 

SQL性能调优中,执行计划两种模式下的计划项目及含义说明如下:

 

explain包含如下计划项目:

 

算子名称:计划中算子节点的名字,以“->”开头进行缩进,如例子中的Seq Scan、Sort、Gather Motion等。

 算子属性:算子在本计划中的操作属性,如例子中的Sort Key:b,表示Sort算子的排序键是b列。

 Cost:估算的代价,包含启动代价和总代价,中间用“...间隔。

 Rows:估算的行数。

 width:估算的每行的宽度,单位字节。

 optimizer:生成该计划的优化器名字,ADB PG具有优化器自适应功能,可能和用户设置的不一致。

 

explain analyze包含如下计划项目:

 

 actual time:实际执行时间,单位毫秒。

 Actual rows:实际输出行数。

 Planning time:实际生成执行计划的时间。

 Slice memory:每个slice使用的内存情况。

 Memory used:整个查询使用的内存情况。

 Execution time:实际执行时间。

 

更多精彩内容,欢迎观看:《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB PostgreSQL版解析与实践(下)——三、SQL性能调优(下):https://developer.aliyun.com/article/1222844?groupCode=certification

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2月前
|
Kubernetes Cloud Native Java
云原生之旅:从容器到微服务的演进之路Java 内存管理:垃圾收集器与性能调优
【8月更文挑战第30天】在数字化时代的浪潮中,企业如何乘风破浪?云原生技术提供了一个强有力的桨。本文将带你从容器技术的基石出发,探索微服务架构的奥秘,最终实现在云端自由翱翔的梦想。我们将一起见证代码如何转化为业务的翅膀,让你的应用在云海中高飞。
|
5天前
|
域名解析 网络协议
非阿里云注册域名如何在云解析DNS设置解析?
非阿里云注册域名如何在云解析DNS设置解析?
|
15天前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
15天前
|
弹性计算 负载均衡 网络协议
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
内部名称解析设置阿里云私有 DNS 区域,针对于阿里云国际版经验教程
|
1月前
|
机器学习/深度学习 Java API
阿里云文档智能解析——大模型版能力最佳实践与体验评测
阿里云文档智能解析(大模型版)在处理非结构化数据方面表现优异,尤其是在性能和可扩展性上具有明显优势。虽然存在一些待完善之处,但其强大的基础能力和广泛的适用场景使其成为企业数字转型过程中的有力助手。随着技术的不断进步和完善,相信它会在更多领域展现出更大的价值。
115 5
阿里云文档智能解析——大模型版能力最佳实践与体验评测
|
5天前
|
监控 网络协议 数据挖掘
阿里云国际云解析DNS如何开启/关闭流量分析?
阿里云国际云解析DNS如何开启/关闭流量分析?
|
6天前
|
人工智能 分布式计算 数据处理
阿里云与传智教育联合直播:深度解析MaxFrame,探索量化交易新纪元
2024年10月15日,阿里云与传智教育联合举办了一场主题为“解密新一代AI+Python分布式计算框架MaxFrame”的直播,对阿里云最新推出的分布式计算框架MaxFrame进行了详细的介绍。
160 0
|
1月前
|
文字识别 算法 API
阿里云文档解析(大模型版)优化
阿里云文档解析(大模型版
|
13天前
|
弹性计算 网络协议 数据库
在阿里云国际站上解析域名到服务器详细教程
在阿里云国际站上解析域名到服务器详细教程
|
1月前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。