Re: CPU-intensive autovacuuming
| От | Phil Endecott |
|---|---|
| Тема | Re: CPU-intensive autovacuuming |
| Дата | |
| Msg-id | 42A468C6.6040603@chezphil.org обсуждение исходный текст |
| Ответ на | CPU-intensive autovacuuming (Phil Endecott <spam_from_postgresql_general@chezphil.org>) |
| Ответы |
Re: CPU-intensive autovacuuming
|
| Список | pgsql-general |
Following up on my own post from last night:
> Could it be that there is some code in autovacuum that is O(n^2) in
> the number of tables?
Browsing the code using webcvs, I have found this:
for (j = 0; j < PQntuples(res); j++)
{
tbl_elem = DLGetHead(dbs->table_list);
while (tbl_elem != NULL)
{
I haven't really tried to understand what is going on in here, but it
does look like it is getting the result of the "pg_class join stats"
query and then matching it up against its internal list of tables using
nested loops, which is undoubtedly O(n^2) in the number of tables.
Have I correctly understood what is going on here?
--Phil.
В списке pgsql-general по дате отправления: