postgresql tuning with perf

From: Purav Chovatia <puravc(at)gmail(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: postgresql tuning with perf
Date: 2017-10-23 19:19:20
Message-ID: CADrzpjHuvgoTNOQosjHDaJ8YW=jDiwCn8u2h8A1HWRTaPzVc5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hello Experts,

We are trying to tune our postgresql DB using perf. We are running a C
program that connects to postgres DB and calls very simple StoredProcs, one
each for SELECT, INSERT & UPDATE.

The SPs are very simple.
*SELECT_SP*:
CREATE OR REPLACE PROCEDURE query_dept_new(p1 IN numeric, p2 OUT numeric,p3
OUT numeric,.......,p205 OUT numeric) AS
BEGIN
SELECT c2,c3,......,c205
INTO p2,p3,.......,p205
FROM dept_new
WHERE c1 = p1;
END;

*UPDATE_SP*:
CREATE OR REPLACE PROCEDURE query_dept_update(p1 IN numeric, p2 IN
numeric,........,p205 IN numeric) AS
BEGIN
update dept_new set c2 = p2,c3 = p3,.....,c205 = p205
WHERE c1 = p1;
commit;
END;

*INSERT_SP*:
CREATE OR REPLACE PROCEDURE query_dept_insert(p1 IN numeric, p2 IN
numeric,.....,p205 IN numeric) AS
BEGIN
insert into dept_new values(p1,p2,.....,p205);
commit;
END;

As shown above, its all on a single table. Before every test, the table is
truncated and loaded with 1m rows. WAL is on a separate disk.

Its about 3x slower as compared to Oracle and major events are WAL related.
With fsync=off or sync_commit=off it gets 10% better but still far from
Oracle. Vacuuming the table does not help. Checkpoint too is not an issue.

Since we dont see any other way to find out what is slowing it down, we
gathered data using the perf tool. Can somebody pls help on how do we go
about reading the perf report.

Thanks & Regards

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message legrand legrand 2017-10-23 20:29:17 Re: postgresql tuning with perf
Previous Message Michael Paquier 2017-10-19 22:54:16 Re: Low priority batch insert