powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему запрос так долго работает?
6 сообщений из 6, страница 1 из 1
почему запрос так долго работает?
    #32049655
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT TOP 1 moment, start FROM quotes q, indexes i
WHERE ((DATEDIFF( DAY , q.moment, '2002-08-28 15:24:00') < 1)AND (i.i_symbol= 'LUKOY') AND (i.id=q.i_id)) ORDER BY q.moment

эт все работает порядка 0.6-.9 секунды, в чем причина?
на страничке может быть до 100 подобных вызовов, соотв. 1.5 минуты ждать неинтересно...
...
Рейтинг: 0 / 0
почему запрос так долго работает?
    #32049661
vadim_march
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
SELECT TOP  1  moment, start
FROM quotes q inner join indexes i on i.id=q.i_id
WHERE ((DATEDIFF( DAY , q.moment, '2002-08-28 15:24:00') =  1 )AND (i.i_symbol= 'LUKOY'))
--ORDER BY q.moment 
...
Рейтинг: 0 / 0
почему запрос так долго работает?
    #32049662
vadim_march
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу прощения
Код: plaintext
1.
2.
3.
SELECT TOP  1  moment, start
FROM quotes q inner join indexes i on i.id=q.i_id
WHERE ((DATEDIFF( DAY , q.moment, '2002-08-28 15:24:00') =  0 )AND (i.i_symbol= 'LUKOY'))
--ORDER BY q.moment 
...
Рейтинг: 0 / 0
почему запрос так долго работает?
    #32049665
vadim_march
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
= 0 быстрее, чем < 1
без join происходит полная конкатенация таблиц, после чего накладывается условие where
...
Рейтинг: 0 / 0
почему запрос так долго работает?
    #32049669
pvnic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пасиб, вроде быстрее...
...
Рейтинг: 0 / 0
почему запрос так долго работает?
    #32049697
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме, того при DATEDIFF( ) не будут использоватся индекс по полю moment (если он увас есть).
Поэтому я предпочитаю запросы вида

WHERE q.moment BETWEEN '2002-08-27 15:24:00' AND '2002-08-28 15:24:00'
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему запрос так долго работает?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]