Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите оптимизировать запрос  [new]
Predatore
Member

Откуда:
Сообщений: 7
Доброго времени суток!
Помогите разобраться с проблемой, я в SQL практически не шарю, но нужно сделать не сложный запрос. Сейчас опишу суть проблемы.
Есть огромная таблица, на много миллионов записей, в ней есть поле с датой, пусть будет myDate, мне нужно выбрать записи за определённый интервал.
Если я пишу скажем:
select *
from myTable
where myDate = '2010-01-10' OR myDate = '2010-01-11'

запрос отрабатывает за секунду.
Но если я напишу
select *
from myTable
where myDate >= '2010-01-10' AND myDate <= '2010-01-11'

запрос отрабатывает дольше 5 часов, хотя результат запроса идентичен предыдущему.

Но мне нужен второй вариант, именно с интервалом, интервал этот будет не большим, но больше одного дня :)
Можно как-то написать запрос, что бы он отрабатывал вменяемое количество времени?
Всё ещё усугубляется тем, что я не могу изменять структуру таблицы.
3 сен 13, 16:03    [14790034]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
_Shakill
Guest
Predatore, попробуйте написать так
select *
from myTable
where myDate >= CONVERT(datetime, '2010-01-10') AND myDate <= CONVERT(datetime, '2010-01-11')

где вместо datetime впишите тип столбца myDate
3 сен 13, 16:13    [14790115]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
DmitryVT
Member

Откуда: VRN
Сообщений: 192
Куда уже проще делать запрос ???

копайте в сторону регламентных работ на сервере (ре индексация, статистика ...) и индексирование полей, и придет к Вам счастье
3 сен 13, 16:14    [14790117]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
'2010-01-10' - это 10 января или 1 октября?
Намекаю на неоформленность вопроса.
Словесный понос вместо необходимой технической информации
3 сен 13, 16:17    [14790148]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Predatore
Member

Откуда:
Сообщений: 7
_Shakill
Predatore, попробуйте написать так
select *
from myTable
where myDate >= CONVERT(datetime, '2010-01-10') AND myDate <= CONVERT(datetime, '2010-01-11')

где вместо datetime впишите тип столбца myDate

Отлично! Спасибо! Так запрос отрабатывает за вполне приемлемое время (в таблице не миллионы записей, а десятки, если не сотни миллионов). Видимо текстовые сравнения слишком напрягают бедняжку.
3 сен 13, 16:31    [14790234]     Ответить | Цитировать Сообщить модератору
 Re: Помогите оптимизировать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Predatore
Видимо текстовые сравнения слишком напрягают бедняжку.

Вы еще в blob-ах даты храните. И вообще все данные
3 сен 13, 16:57    [14790401]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить