- 浏览: 23547 次
- 性别:
- 来自: 北京
最新评论
-
qq1625655033:
您好,请问下这个错误是什么原因所导致的啊?ERROR: GTM ...
优化Postgres-x2 GTM
文章列表
Postgres-x2是一个基于pgsql、面向OTLP的分布式数据库,采用了shared-nothing的架构,目标是针对OLTP\OLAP应用能做到可扩展的系统。源码在github上:https://github.com/postgres-x2/postgres-x2 。
最近在针对 Postgres-x2做压力测试。测 ...
一个简单PGSQL调优的例子
- 博客分类:
- 运维 PGSQL
这几天,在写一个关于PGSQL性能的测试报告。
今天找了台顶配的R720做测试。R720配置如下:E5-2650 v2两颗,128G内存,磁盘为两块SATA盘做RAID0 拼出来的一个T的磁盘。
之前同事在上面测试mysql的QPS大概 ...
前面讲了如何从外部来观察checkpoint,但是,实际上checkpoint内部是如何运行的呢?这里就有必要讲讲来龙去脉了。
目前,PG中有一个单独的checkpoint的进程。一般来说,在正常的启动过程中,这个进程是postmaster ...
最近一直在使用pgbench对pg进行压测,在压测的过程中,发现checkpoint的发生会对数据库的性能产生极大的影响.
想看到最近有没有发生checkpoint,有两种比较简单的方式:
一个是不停的刷新pg_stat_bgwriter这个视图,这个视图中两个字段checkpoints_timed和checkpoints_req直接反映了PG已经发生或是正在发生的checkpoint次数,如果这两个字段的值发生了变化,就说明发生了checkpoint。如果凑巧正在做checkpoint,可以查询这个视图的另外的一个字段buffers_check ...
pg_stat_statements是PG中监控数据库活动的重要插件,通过它可以获得SQL的统计信息,例如该SQL被调用了多少次,返回了多少记录,在读写数据上花了多少时间,这个对于监控数据库很有帮助。默认情况下,这个插件可以统 ...
对order by 和limit的处理
对于某些SQL来说,最后需要处理的operator就是order by以及limit。例如下面这个SQL:
select
l_returnflag,
l_linestatus,
sum(l_quantity) as sum_qty,
sum(l_extendedprice) as sum_base_price,
sum(l_extendedprice * (1 - l_discount)) as sum_disc_price,
sum ...
子查询的处理
说实话,本人在没看PG之前,一直看mysql的文档里面讲子查询,什么From、drived子查询啥的,一直晕乎乎的。但是在看了PG代码之后,终于感觉略微明白了点。
具体说来,SQL里面,出现在rtable里面的子查询才可以称为是subquery,而出现在过滤条件(例如expression)中的被称为sublink。
例如:
select count(t1.a), tt.b from t1, (select t2.b, t2.c from t2) as tt
where t1.a in (select d from t3) ...
Join的处理
Join的处理在数据库中占有相当重要的地位。一般来说,在查询优化阶段,PGSQL会首先调用reduce_outer_joins函数来尽量消灭外连接:例如将全外连接转成左、右外连接(或者反左右连接)甚至是内连接,将左右外连接转化成内连接;接着PG会使用动态规划算法来选择一条cost最小的path来确定执行join的先后顺序。
而对于一个分布式的mpp系统来说,join的处理首先和数据的分布有着极大的关系,如果连接的字段就是数据划分的字段,那么可以直接下推join到各个OP执行,如果不是,那么需要选择一种代价比较小的方式:一,将一个小的表做重分布;二,如果表足够小 ...
在简单描述了ppg_fdw的架构和工作流程之后,下面将会结合TPCH的实例来描述设计思想。
前面已经提到TPCH是一个工业界认可的标准测试集合(包括数据和SQL的模板),主要用来测试OLAP系统的性能。用户可以用TPCH来生成测试 ...
(前面由于个人事情较多,所以暂停了博客,现在继续)。
由于PG本身就是个庞大的基础软件,ppg_fdw调用了大量的PG内部的接口,因此很难一行行代码来介绍(上周一个QA同事让我给他讲解代码,被善意的拒绝了。主要 ...
在前面的博文介绍了PG的hook和数据仓库的join算法之后,现在终于要推出干货了:ppg_fdw。(大家可以从githup:https://github.com/scarbrofair/ppg_fdw上下载代码和相关的简要说明文档)。
总的说来,ppg_fdw基于pgsql的hook和foreign data wrapper机制,力图使用透明的方式,使用PG构建一个mpp的数据仓库。目前,从数据仓库领域来说,普遍采用了mpp的结构。特别是greenplum和asterdata来说,更是很大程度采用了PG来构建一个分布式的并行数据仓库。(说起来,ppg_fdw这个项目其实是笔者5 ...
为了支持用户对数据库的扩展,目前的PGSQL提供了很多hook来满足用户的需求。
一般说来,数据库提供了多种扩展机制,例如大家最常见的PLSQL,用户使用SQL来开发存储过程,为了更高的效率和更大的灵活性,也可以使用C ...
数据仓库中经典模型主要有两种:一种是雪花模型,另外一种就是星座模型。简单的来说,雪花模型中是一个事实表,和若干个维度表,事实表通过外键和维度表关联。星座模型中存在着不止一个事实表,引用若干维度表, ...