![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скорость выполнения запроса [D7]
tytus © (2007-07-31 09:09:00)Доброе утро мастера. Подскажите, в каком случае будет быстрее выполняться выборка по полю , если оно типа Date или типа varchar2(10) =(30.07.2007)??
Desdechado (2007-07-31 15:41:00) [1]> Такая конструкция в общем случае даст неверную выборку.
Добавлю, что вторая конструкция - тоже может дать неверную выборку, т.к. не указан формат приведения к дате.
А вообще - использовать параметры.
tytus (2007-07-31 10:04:00) [2]>Все спасибо, будем хранить как Дату!
До скорого -))
Сергей М. (2007-07-31 09:58:00) [3]
> tytus © (31.07.07 09:47) [10]
> хранить как дату?
Разумеется !
Мне ведь скорость тоже важна
"Скорость" достигается иными способами - индексы, план запроса, правильное использование транзакционного механизма и т.д. и т.п.
Sergey13 (2007-07-31 09:49:00) [4]> [9] tytus © (31.07.07 09:45)
> Ну, хранение оно по умолчанию... а вот выборка - дело другое.
Не понял я этой фразы, если честно, хотя слова все знакомые. 8-)
tytus (2007-07-31 09:47:00) [5]>Сергей М. © (31.07.07 09:45) [8]
Да вы правы. Может выгрести и 01.06.2007 и 01.07.2007.
Так что - хранить как дату? Мне ведь скорость тоже важна....
Сергей М. (2007-07-31 09:45:00) [6]
> a.FDate between '01.07.2007' and '30.07.2007'
> -- это эжели текстовоеполе
Такая конструкция в общем случае даст неверную выборку.
tytus (2007-07-31 09:45:00) [7]>Sergey13 © (31.07.07 09:41) [7]
Ну, хранение оно по умолчанию... а вот выборка - дело другое.
Дак где шустрее? Подразумевается, что в таблице будет около 100 000 записей.
Sergey13 (2007-07-31 09:41:00) [8]> [0] tytus © (31.07.07 09:09)
Если вопрос стоит о хранении именно даты, то однозначно дату и надо использовать.
tytus (2007-07-31 09:40:00) [9]selecta.FDate, a.FName... fromt_mytable a
wherea.FName='что-то там...'
anda.FDate between'01.07.2007' and'30.07.2007'
-- это эжели текстовое поле
или
anda.FDate>= To_Date('01.07.2007') anda.FDate<= To_Date('30.07.2007')
Вот прим. такого вида
Сергей М. (2007-07-31 09:39:00) [10]
> Date - 8 байт
> varchar(10) - 10 байт
Это же зависит от конкретной СУБД.
В одной так, в другой м.б. иначе.
SlymRO (2007-07-31 09:35:00) [11]и это без учета дисковых операций, с ними также на 20 %
SlymRO (2007-07-31 09:34:00) [12]Date - 8 байт
varchar(10) - 10 байт
при сравнении 8байт быстрее чем 10байт на 20% :)
Sergey13 (2007-07-31 09:31:00) [13]> [0] tytus © (31.07.07 09:09)
Быстрее (ощутимо) будет поиск по индексированному полю. Тип поля если и оказывает влияние, то не особо заметно.
Сергей М. (2007-07-31 09:21:00) [14]Для ответа на вопрос недостаточно условий выборки.