RE: Rendimiento ESQL/C

From: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>
To: "'atbrkt'" <atbrkt(at)hotpop(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Rendimiento ESQL/C
Date: 2009-12-16 16:08:19
Message-ID: 6DDB0B4637AB4DEC9B4EA00010B92415@iptel.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> -----Mensaje original-----
> De: atbrkt
>
> Buenas,
>
> Estoy utilizando el interfaz ESQL/C como medio de acceso a la
> base de datos, sin embargo no estoy satisfecho con el
> rendimiento que estoy obteniendo. He realizado unas pruebas
> con pgbench, que está implementado en libpq y mediante esta orden:
>
> ./pgbench -i pgbench -s 1
>
> Se crean 10000 tuplas en menos de 1 segundo, algo impensable
> desde mi aplicación de ESQL/C, con la siguiente transacción:
>
> EXEC SQL BEGIN;
> for(int i=0;i<100000;i++){
> EXEC SQL INSERT INTO accounts VALUES (1,1,1); } EXEC SQL COMMIT;
>
> El tiempo de creación de 10000 tuplas mediante ESQL/C es de
> unos 10 segundos. ¿Alguien sabe por qué hay tanta diferencia
> entre mi aplicación y el benchmark pgbench? ¿Es posible que
> pgbench optimice al máximo el rendimiento de PostgreSQL? De
> esto último estoy casi seguro, puesto que el consumo de CPU
> es bastante más alto con pgbench

El setup de pgbench no hace inserts sino copy para popular la tabla
accounts,
lo cual es más rápido que los inserts.

Para que compares, el mismo loop en pgplsql hace 100.000 inserts en unos 4.7
seg.
Si elimino el PK sobre accounts el tiempo baja a 3 seg. Esperaría que en C
esto fuese más rápido aún.
(Base dedicada 8.3.8 sobre un Pentium D 3.0GHz).

No estoy familiarizado con ESQL/C como para hacer alguna sugerencia.

Slds.,
Fernando.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2009-12-17 04:21:15 RE: APLICACION COMO EL ENTERPRISE MANAGER ORACLE
Previous Message Alvaro Herrera 2009-12-16 16:03:57 Re: Rendimiento ESQL/C