Hi,
In statistical reports gathered by PgBadger on our PostgreSQL databases almost always we have in "Queries that took up the most time" report table information about transactions start time ('BEGIN;' command). Something like that in example below:
2 3h34m52.26s 48,556,167 0.00s BEGIN;
0.82s | BEGIN;
0.82s | BEGIN;
0.82s | BEGIN;
0.81s | BEGIN;
0.81s | BEGIN;
0.81s | BEGIN;
0.80s | BEGIN;
0.80s | BEGIN;
0.79s | BEGIN;
0.79s | BEGIN;
Databases placed on different hardware, OS - Debian GNU/Linux, PostgreSQL 9.1
So, questions are:
1. Is this a normal situation with transactions start time ( BEGIN method) ?
2. How can we reduce transactions start time if it's possible in principle?
3. What happens in PostgreSQL on transaction starting time? Can someone describe this process in detail? (of course, I saw in PostgreSQL source code, for example, definition such kind functions, like StartTransaction function, but it's not so easy to understand for third-party researcher, that all of these operations mean in real for performance)
Best Regards
Aleksei