AnalyticDB PostgreSQL 7.0 新能力介绍 : 利用JIT加速计算

简介: AnalyticDB PostgreSQL 7.0 发布, 即时编译(Just-In-Time,JIT)可以将某种形式的解释程序计算转变成原生程序,由CPU原生执行,从而得到加速。

背景

技术讲解

即时编译(Just-In-Time,JIT)可以将某种形式的解释程序计算转变成原生程序,由CPU原生执行,从而得到加速。

使用场景

JIT编译技术可以让CPU密集型的查询受益。PostgreSQL的JIT实现支持对表达式计算以及元组拆解的加速。表达式计算的应用包括WHERE子句、目标列表、聚集以及投影。PostgreSQL通过为每一种情况生成专门的代码来实现加速。

例子

创建测试表,并写入一亿行数据。

createtable jit_test (id serial);insertINTO jit_test (id)select*from generate_series(1,100000000);analyze jit_test;

关闭JIT进行优化性能测试

postgres=# explain analyze select avg(id)from jit_test;                                                                  QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------- Finalize Aggregate  (cost=453326.89..453326.90 rows=1 width=32)(actual time=13444.050..13444.050 rows=1 loops=1)->  Gather Motion 3:1(slice1; segments:3)(cost=453326.83..453326.88 rows=3 width=32)(actual time=13064.601..13444.006 rows=3 loops=1)->  Partial Aggregate  (cost=453326.83..453326.84 rows=1 width=32)(actual time=13443.451..13443.452 rows=1 loops=1)->  Seq Scan on jit_test  (cost=0.00..369995.67 rows=33332467 width=4)(actual time=0.191..7151.999 rows=33335145 loops=1) Optimizer: Postgres query optimizer
 Planning Time:0.447 ms
(slice0)    Executor memory:40K bytes.
(slice1)    Executor memory:38K bytes avg x 3 workers,38K bytes max (seg0).
 Memory used:128000kB
 Execution Time:13445.055 ms
(10 rows)

打开JIT相关参数

set jit to on;set optimizer to off;

开启JIT进行性能优化测试

QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------- Finalize Aggregate  (cost=453326.89..453326.90 rows=1 width=32)(actual time=11695.112..11695.113 rows=1 loops=1)->  Gather Motion 3:1(slice1; segments:3)(cost=453326.83..453326.88 rows=3 width=32)(actual time=10926.392..11690.101 rows=3 loops=1)->  Partial Aggregate  (cost=453326.83..453326.84 rows=1 width=32)(actual time=11693.964..11693.965 rows=1 loops=1)->  Seq Scan on jit_test  (cost=0.00..369995.67 rows=33332467 width=4)(actual time=0.213..6529.483 rows=33335145 loops=1) Optimizer: Postgres query optimizer
 Planning Time:0.492 ms
(slice0)    Executor memory:40K bytes.
(slice1)    Executor memory:38K bytes avg x 3 workers,38K bytes max (seg0).
 Memory used:128000kB
 JIT:   Functions:4   Options: Inlining false, Optimization false, Expressions true, Deforming true   Timing: Generation 0.870 ms, Inlining 0.000 ms, Optimization 0.295 ms, Emission 4.462 ms, Total 5.627 ms
 Execution Time:11697.065 ms
(14 rows)

可以看到在大数据集时,对于单列聚集的场景 ,使用JIT进行计算会有15%-20%的性能提升。JIT编译技术可以让CPU密集型的查询受益,并且这个性能提升会随着数据量的增大而更加明显。但是需要注意的是,JIT在小数据集的场景下反而会因为有额外的JIT开销,其编译增加的时间比其节省的时间还要多,从而导致性能下降。用户需要根据自己的实际业务场景谨慎使用JIT。

总结

JIT 技术对与OLAP数据库来说是有效加速CPU密集型查询能力的有效手段,目前PostgreSQL完成了WHERE子句、目标列表、聚集以及投影等方面的工程实现。其实现场景还相对比较少,而ADBPG7未来的自研执行向量化引擎则在更多的场景尝试引入JIT技术来进一步提升查询性能。

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
4月前
|
SQL 运维 关系型数据库
基于AnalyticDB PostgreSQL的实时物化视图研发实践
AnalyticDB PostgreSQL企业数据智能平台是构建数据智能的全流程平台,提供可视化实时任务开发 + 实时数据洞察,让您轻松平移离线任务,使用SQL和简单配置即可完成整个实时数仓的搭建。
375 1
|
4月前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL版标准版计算节点规格详解
PolarDB MySQL版标准版计算节点规格详解
121 1
|
12天前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
12天前
|
运维 Cloud Native 关系型数据库
云原生数据仓库产品使用合集之原生数据仓库AnalyticDB PostgreSQL版如果是列存表的话, adb支持通过根据某个字段做upsert吗
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
2月前
|
关系型数据库 MySQL OLAP
PolarDB +AnalyticDB Zero-ETL :免费同步数据到ADB,享受数据流通新体验
Zero-ETL是阿里云瑶池数据库提供的服务,旨在简化传统ETL流程的复杂性和成本,提高数据实时性。降低数据同步成本,允许用户快速在AnalyticDB中对PolarDB数据进行分析,降低了30%的数据接入成本,提升了60%的建仓效率。 Zero-ETL特性包括免费的PolarDB MySQL联邦分析和PolarDB-X元数据自动同步,提供一体化的事务处理和数据分析,并能整合多个数据源。用户只需简单配置即可实现数据同步和实时分析。
|
8月前
|
关系型数据库 OLAP 数据库
如何克隆AnalyticDB PostgreSQL实例
AnalyticDB PostgreSQL版支持基于已有实例,快速克隆出一个完全相同的实例。
274 0
|
5月前
|
关系型数据库 OLAP 数据库连接
AnalyticDB PostgreSQL版目前不支持使用外部数据包装器
AnalyticDB PostgreSQL版目前不支持使用外部数据包装器
86 3
|
5月前
|
SQL 关系型数据库 C语言
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
49 0
|
6月前
|
存储 人工智能 关系型数据库
5倍性能提升,阿里云AnalyticDB PostgreSQL版新一代实时智能引擎重磅发布
2023 云栖大会上,AnalyticDB for PostgreSQL新一代实时智能引擎重磅发布,全自研计算和行列混存引擎较比开源Greenplum有5倍以上性能提升。AnalyticDB for PostgreSQL与通义大模型家族深度集成,推出一站式AIGC解决方案。阿里云新发布的行业模型及“百炼”平台,采用AnalyticDB for PostgreSQL作为内置向量检索引擎,性能较开源增强了2~5倍。大会上来自厦门国际银行、三七互娱等知名企业代表和瑶池数据库团队产品及技术资深专家们结合真实场景实践,深入分享了最新的技术进展和解析。
5倍性能提升,阿里云AnalyticDB PostgreSQL版新一代实时智能引擎重磅发布
|
8月前
|
Cloud Native OLAP 关系型数据库
云原生数据仓库AnalyticDB MySQL版/PostgreSQL版(二)
云原生数据仓库AnalyticDB MySQL版/PostgreSQL版(二)
164 0

相关产品

  • 云数据库 RDS PostgreSQL 版