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

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 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技术来进一步提升查询性能。

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
6月前
|
SQL 运维 关系型数据库
基于AnalyticDB PostgreSQL的实时物化视图研发实践
AnalyticDB PostgreSQL企业数据智能平台是构建数据智能的全流程平台,提供可视化实时任务开发 + 实时数据洞察,让您轻松平移离线任务,使用SQL和简单配置即可完成整个实时数仓的搭建。
612 1
|
2月前
|
存储 关系型数据库 Serverless
PostgreSQL计算两个点之间的距离
PostgreSQL计算两个点之间的距离
302 60
|
6月前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
6月前
|
运维 Cloud Native 关系型数据库
云原生数据仓库产品使用合集之原生数据仓库AnalyticDB PostgreSQL版如果是列存表的话, adb支持通过根据某个字段做upsert吗
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
3月前
|
DataWorks 调度 数据库
实时数仓 Hologres产品使用合集之通用和计算组型有什么区别
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
5月前
|
运维 Cloud Native 关系型数据库
云原生数据仓库AnalyticDB产品使用合集之PostgreSQL版是否直接支持实时物化视图
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
130 3
|
6月前
|
SQL 运维 关系型数据库
基于AnalyticDB PostgreSQL的实时物化视图研发实践
AnalyticDB PostgreSQL版提供了实时物化视图功能,相较于普通(非实时)物化视图,实时物化视图无需手动调用刷新命令,即可实现数据更新时自动同步刷新物化视图。当基表发生变化时,构建在基表上的实时物化视图将会自动更新。AnalyticDB PostgreSQL企业数据智能平台是构建数据智能的全流程平台,提供可视化实时任务开发 + 实时数据洞察,让您轻松平移离线任务,使用SQL和简单配置即可完成整个实时数仓的搭建。
143994 8
|
存储 人工智能 关系型数据库
5倍性能提升,阿里云AnalyticDB PostgreSQL版新一代实时智能引擎重磅发布
2023 云栖大会上,AnalyticDB for PostgreSQL新一代实时智能引擎重磅发布,全自研计算和行列混存引擎较比开源Greenplum有5倍以上性能提升。AnalyticDB for PostgreSQL与通义大模型家族深度集成,推出一站式AIGC解决方案。阿里云新发布的行业模型及“百炼”平台,采用AnalyticDB for PostgreSQL作为内置向量检索引擎,性能较开源增强了2~5倍。大会上来自厦门国际银行、三七互娱等知名企业代表和瑶池数据库团队产品及技术资深专家们结合真实场景实践,深入分享了最新的技术进展和解析。
5倍性能提升,阿里云AnalyticDB PostgreSQL版新一代实时智能引擎重磅发布
|
6月前
|
关系型数据库 OLAP 数据库连接
AnalyticDB PostgreSQL版目前不支持使用外部数据包装器
AnalyticDB PostgreSQL版目前不支持使用外部数据包装器
106 3
|
6月前
|
SQL 关系型数据库 C语言
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
95 0

相关产品

  • 云数据库 RDS PostgreSQL 版