Название: PostgreSQL, удаленные строки и индексы Отправлено: dd от Октябрь 01, 2011, 10:34 Доброго всем дня.
Столкнулся с проблемой. Стоит на фре постгрес 9.0.3. Странные дела происходят. Есть простая таблица с 3 полями, одно из которых - первичный ключ. То есть индекс уже есть. В таблицу раньше записывалось очень много строк. Потом все стало тормозить, я все удалил из таблицы и больше не клал туда ничего. Но видимо то ли индексы не удалились, то ли еще чего. В общем запорс "delete from gps_current;" стал подвисать надолго. Это при том, что ни одной строки в таблице нет. Делаю запрос "EXPLAIN table gps_current;", вижу следующее: database=# delete from gps_current; --------- тут тормоза дикие --------- database=# database=# EXPLAIN table gps_current; QUERY PLAN ------------------------------------------------------------------------ Seq Scan on gps_current (cost=0.00..397811.04 rows=17305904 width=76) (1 row) database=# drop table gps_current; Откуда взялись эти 17 миллионов? Таблица точно пуста. Видимо индексы не очистились после удаления. Как быть? Название: Re: PostgreSQL, удаленные строки и индексы Отправлено: MoPDoBoPoT от Октябрь 01, 2011, 10:55 Сразу говорю, что с PostgreSQL я не знаком, поэтому только предположения.
Это либо глюк словлен, либо индекс не успел перестроиться (всё-таки не маленький). Можно попробовать пересобрать статистику или пересоздать индекс. Название: Re: PostgreSQL, удаленные строки и индексы Отправлено: dd от Октябрь 01, 2011, 11:02 По поводу не успел - отметается, таблица пуста месяца 2 уже.
Дроп ти пересоздание таблицы не выход. Нужно знать причину и нормальное решение. Название: Re: PostgreSQL, удаленные строки и индексы Отправлено: andrew.k от Октябрь 02, 2011, 14:36 а vacuumdb не помогает?
|