Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Тормозит запрос


Автор: brejnev 23.6.2010, 14:45
Добрый день!


Вот запрос

Код

SELECT CITY_FROM as cityFrom, CITY_TO as cityTo, resort_id as resortId 
from city_to_city_cache where from_date >= '20100623'


В таблице 1507 записей, но запрос выполняется секунды 4е

по from_date (это поле - строка 8 символов) создаю индекс

Код

CREATE INDEX from_date_idx ON city_to_city_cache (from_date);


Вроде бы побыстрее... время выполения скачет от 2х секунд до 4х.

explain analyze дает вт такой результат.

Код

Seq Scan on city_to_city_cache  (cost=0.00..31.84 rows=459 width=16) (actual time=0.025..1.229 rows=506 loops=1)
  Filter: (from_date >= '20100901'::bpchar)



Запрос то простой, записей немного, но почему запрос выполняется так долго и индекс не используется?
Куда копать? 

Возможно еще индексы надо покрутить. Попробую, может что интересное получится smile


Автор: brejnev 23.6.2010, 16:08
Индекс не использует возможно от того что записей в таблице относительно мало...

Автор: DimW 24.6.2010, 13:39
Цитата(brejnev @  23.6.2010,  16:08 Найти цитируемый пост)
Индекс не использует

тогда встречный вопрос - почему вы считаете что инднкс должен использоваться в данном случае:
Цитата(brejnev @  23.6.2010,  14:45 Найти цитируемый пост)
from_date >= '20100623'

???

и еще - почему вы храните дату в текстовом представлении?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)