[PERFORM] postgresql tuning with perf - Mailing list pgsql-performance

From Purav Chovatia
Subject [PERFORM] postgresql tuning with perf
Date
Msg-id CADrzpjHuvgoTNOQosjHDaJ8YW=jDiwCn8u2h8A1HWRTaPzVc5w@mail.gmail.com
Whole thread Raw
Responses Re: [PERFORM] postgresql tuning with perf
Re: [PERFORM] postgresql tuning with perf
Re: [PERFORM] postgresql tuning with perf
List 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

pgsql-performance by date:

Previous
From: Michael Paquier
Date:
Subject: Re: [PERFORM] Low priority batch insert
Next
From: legrand legrand
Date:
Subject: Re: [PERFORM] postgresql tuning with perf