Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Скорость выполнения запроса [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]

Для ответа на вопрос недостаточно условий выборки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо