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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 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推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
3月前
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
|
3月前
|
缓存 关系型数据库 数据库
PostgreSQL性能
【8月更文挑战第26天】PostgreSQL性能
69 1
|
3月前
|
存储 运维 Kubernetes
实时数仓Hologres提升问题之调度性能如何解决
Hologres可以支持的最大节点规模是多少?
45 1
|
25天前
|
监控 数据挖掘 OLAP
深入解析:AnalyticDB中的高级查询优化与性能调优
【10月更文挑战第22天】 AnalyticDB(ADB)是阿里云推出的一款实时OLAP数据库服务,它能够处理大规模的数据分析任务,提供亚秒级的查询响应时间。对于已经熟悉AnalyticDB基本操作的用户来说,如何通过查询优化和性能调优来提高数据处理效率,是进一步提升系统性能的关键。本文将从个人的角度出发,结合实际经验,深入探讨AnalyticDB中的高级查询优化与性能调优技巧。
63 4
|
22天前
|
SQL 监控 大数据
优化AnalyticDB性能:查询优化与资源管理
【10月更文挑战第25天】在大数据时代,实时分析和处理海量数据的能力成为了企业竞争力的重要组成部分。阿里云的AnalyticDB(ADB)是一款完全托管的实时数据仓库服务,支持PB级数据的秒级查询响应。作为一名已经有一定AnalyticDB使用经验的开发者,我发现通过合理的查询优化和资源管理可以显著提升ADB的性能。本文将从个人角度出发,分享我在实践中积累的经验,帮助读者更好地利用ADB的强大功能。
37 0
|
2月前
|
缓存 关系型数据库 数据库
如何优化 PostgreSQL 数据库性能?
如何优化 PostgreSQL 数据库性能?
116 2
|
1月前
|
存储 关系型数据库 MySQL
四种数据库对比MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
四种数据库对比 MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
|
2月前
|
缓存 关系型数据库 数据库
PostgreSQL的性能
PostgreSQL的性能
137 2
|
SQL 数据库 索引
SQL Server 性能调优培训引言
原文:SQL Server 性能调优培训引言      大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录。       作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤浅,博而不专,到现在我才发现自己的兴趣所在,于是我通过网络找了各种MS SQ...
1107 0
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
下一篇
无影云桌面