【文件属性】:
文件名称:程序员需要经常刷题吗-vops:vops
文件大小:120KB
文件格式:ZIP
更新时间:2021-07-01 12:51:51
系统开源
需要程序员经常刷题吗动机
在
OLTP
工作负载(执行大量简单查询)上,PostgreSQL
看起来与其他主流数据库非常有竞争力。
但是对于需要处理大量数据的
OLAP
查询,面向分析查询处理的
DBMS-es
可以提供一个数量级的更好的速度。
让我们调查它为什么会发生,我们可以做些什么来使
PostgreSQL
也对
OLAP
查询有效。
DBMS
在处理
OLAP
查询的过程中大部分时间都花在哪里?
查询的性能分析显示了几个限制
Postgres
性能的主要因素:
解包元组开销
(tuple_deform)。
为了能够访问列值,Postgres
需要对元组进行变形。
值可以被压缩,存储在其他页面(TOAST),......此外,就列的大小而言,要提取第
N
列,我们需要解压前面的
N-1
列。
所以变形元组是一个相当昂贵的操作,特别是对于具有大量属性的表。
在某些情况下,重新排列表中的列可以显着减少查询执行时间。
另一种通用方法是将表分成两部分:一个是经常访问的标量列的小表,另一个是很少使用的大列。
当然在这种情况下我们需要执行额外的连接,但它允许多次减少获取的数据量。
在像
TP
【文件预览】:
vops-master
----projections.sql(2KB)
----.gitignore(43B)
----vops_as_123.md(13KB)
----tpch2.sql(8KB)
----README.md(52KB)
----vops_fdw.c(47KB)
----vops.html(54KB)
----vops_fdw.h(3KB)
----tpch.sql(8KB)
----vops--1.0.sql(206KB)
----LICENSE(1KB)
----META.json(1KB)
----sql()
--------test.sql(5KB)
----vops.h(3KB)
----expected()
--------test.out(11KB)
----Makefile(562B)
----vops.c(146KB)
----deparse.c(55KB)
----vops.control(127B)