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
Saludos