Страница 1 из 1

Выборка по дате и времени

Добавлено: 15 дек 2010, 10:11
bratslav
Привет всем!!!

Изначально при проектировании БД в таблице ZAKAZ было поле DATA типа DATE
Далее клиент захотел видеть время заказа (таксист).
Я ввел доп. поля TIMES типа TIME и DATATIME типа TIMESTAMP COMPUTED BY (DATA+TYME)
Создан индекс по полям DATA и TYME

Обращение к таблице через запрос:
select ....
from ZAKAZ
where (DATATIME >= '01.10.2010 09:00:00') and (DATATIME <= '31.10.2010 09:00:00')

Скорость выполнения запроса выросла до критичного значения.

Как мне оптимизировать обращение к таблице?

Спасибо.

Re: Выборка по дате и времени

Добавлено: 15 дек 2010, 14:40
Dimitry Sibiryakov
А зачем ты ввёл дополнительное поле вместо изменения типа уже существующего? Т.е. сам себе подложил свинью.

Re: Выборка по дате и времени

Добавлено: 16 дек 2010, 10:06
kdv
Как мне оптимизировать обращение к таблице?
что-нибудь на сайте прочитать про оптимизатор. При таком использовании computed by столбца никакие индексы использоваться не будут. Вы и сами могли бы увидеть это в плане запроса.

Re: Выборка по дате и времени

Добавлено: 16 дек 2010, 12:47
bratslav
Я уже понял про проблему с COMPUTED
Есть ли возможность поправить "малой кровью" без перестроки всей таблицы?

Re: Выборка по дате и времени

Добавлено: 16 дек 2010, 14:39
Dimitry Sibiryakov
ALTER TABLE ZAKAZ ALTER DATA TYPE TIMESTAMP;

Re: Выборка по дате и времени

Добавлено: 16 дек 2010, 15:32
bratslav
Dimitry Sibiryakov писал(а):ALTER TABLE ZAKAZ ALTER DATA TYPE TIMESTAMP;
I am thank you!!!