Long-running query blocks all other queries

From: "Anton V(dot) Belyaev" <anton(dot)belyaev(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Long-running query blocks all other queries
Date: 2009-03-19 14:42:30
Message-ID: 7363f175-77e4-4f82-94d1-360ab9d77a6f@w34g2000yqm.googlegroups.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

I want to run a long running query in background to collect
statistics. I.e. how many users played the game last month more than
50 times.

SELECT count(*) FROM (SELECT user_id, COUNT(*) AS total_games FROM
games, game2user WHERE games.finished > '2009-02-19' AND games.id =
game2user.game_id GROUP BY user_id) AS aaa WHERE aaa.total_games > 50;

I have 4-cored machine, so I expected the query to be able to run for
a long time without performance degrade for application.

But the query has completely blocked all other queries. Even those,
which are not related to tables, used by the long-running query.

Why does this block happen and how to aid it?

Thanks.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rob Richardson 2009-03-19 14:43:45 Changing pg_type records
Previous Message Peter Eisentraut 2009-03-19 14:22:56 Re: Multiple natural joins