У меня есть таблица, е, с ежедневной настройкой разделов диапазонов. Основная таблица и таблицы разделов определены таким образом.
CREATE TABLE e (
toi TIMESTAMP WITH TIME ZONE
WITH (
OIDS=TRUE
);
CREATE TABLE e_20150501
CONSTRAINT e_20150501_toi_chk CHECK (toi >= ‘2015-05-01’::DATE AND toi < ‘2015- 05-02’::DATE)
INHERITS (e)
WITH (
OIDS=TRUE
);
По какой-то причине, независимо от того, как я создаю предложение WHERE в операторах SELECT, я не могу получить план, который не сканировал бы каждую отдельную таблицу разделов?
Я пробовал …
WHERE toi::DATE >= ‘2015-05-01’::DATE AND toi::DATE <= ‘2015-05-02’::DATE;
WHERE toi >= to_timestamp(‘2015-05-01 12:30:57’, ‘YYYY-MM-DD HH24:MI:SS’) AND toi <= to_timestamp(‘2015-05-02 12:30:57’, ‘YYYY-MM-DD HH24:MI:SS’);
Что мне не хватает?
CHECK (toi >= timestamp '2015-05-01 00:00:00' ...
А затем также использовать метки времени в своем запросе. - person a_horse_with_no_name   schedule 10.06.2015