Обсуждение: execution time for first INSERT

Поиск
Список
Период
Сортировка

execution time for first INSERT

От
Sergio Mayoral
Дата:
Hi,

i am using libpq library and postgresql 8.4 for my linux application running on ARM with 256 MB. I am just doing:

PQconnectdb();
PQexec(INSERT INTO table1 ....); (0.009661 sec.)
PQexec(INSERT INTO table1 ....); (0.004208 sec.)

PQexec(INSERT INTO table2 ....); (0.007352 sec.)
PQexec(INSERT INTO table2 ....); (0.002533 sec.)
PQexec(INSERT INTO table2 ....); (0.002281 sec.)
PQexec(INSERT INTO table2 ....); (0.002244 sec.)

PQexec(INSERT INTO table3 ....); (0.006903 sec.)
PQexec(INSERT INTO table3 ....); (0.002903 sec.)
PQfinnish();

I check the time for each PQexec with gettimeofday function and I always see that the first INSERT for each table needs
longerthan the next ones. 

this must be something with the parser stage and since i am doing every time the same queries, I would like to know if
thereis a way to cache these queries in order to speed up the first INSERT. 

Thanks in advance,

sma

Re: execution time for first INSERT

От
Jeff Davis
Дата:
On Fri, 2011-07-08 at 04:23 -0700, Sergio Mayoral wrote:
> this must be something with the parser stage and since i am doing
> every time the same queries, I would like to know if there is a way to
> cache these queries in order to speed up the first INSERT.

I doubt it's the parser.

Seeing as it's around a couple ms at minimum, it's probably some kind of
IO latency. You could see that by wrapping the statements in a big
transaction (BEGIN/END block) -- I bet the inserts go very quickly and
the final commit takes longer.

Regards,
    Jeff Davis