Re: Very long deletion time on a 200 GB database

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: Very long deletion time on a 200 GB database
Дата
Msg-id 4F464C49.4050503@dunslane.net
обсуждение исходный текст
Ответ на Re: Very long deletion time on a 200 GB database  (Marcin Mańk <marcin.mank@gmail.com>)
Ответы Re: Very long deletion time on a 200 GB database  ("Reuven M. Lerner" <reuven@lerner.co.il>)
Список pgsql-performance

On 02/23/2012 05:07 AM, Marcin Mańk wrote:
>> DELETE FROM  B
>> WHERE r_id IN (SELECT R.id
>>      FROM R, B
>>     WHERE r.end_date<  (NOW() - (interval '1 day' * 30))
>>       AND r.id = b.r_id
>>
> How about:
>
>   DELETE FROM  B
>   WHERE r_id IN (SELECT distinct R.id
>       FROM R  WHERE r.end_date<  (NOW() - (interval '1 day' * 30))
>
> ?
>

Or possibly without the DISTINCT.  But I agree that the original query
shouldn't have B in the subquery - that alone could well make it crawl.

What is the distribution of end_dates? It might be worth running this in
several steps, deleting records older than, say, 90 days, 60 days, 30 days.

cheers

andrew

В списке pgsql-performance по дате отправления:

Предыдущее
От: Claudio Freire
Дата:
Сообщение: Re: Very long deletion time on a 200 GB database
Следующее
От: Andy Colson
Дата:
Сообщение: Re: set autovacuum=off