|
|
|
почему запрос так долго работает?
|
|||
|---|---|---|---|
|
#18+
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 минуты ждать неинтересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 12:57:38 |
|
||
|
почему запрос так долго работает?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 13:05:13 |
|
||
|
почему запрос так долго работает?
|
|||
|---|---|---|---|
|
#18+
прошу прощения Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 13:06:28 |
|
||
|
почему запрос так долго работает?
|
|||
|---|---|---|---|
|
#18+
= 0 быстрее, чем < 1 без join происходит полная конкатенация таблиц, после чего накладывается условие where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 13:10:25 |
|
||
|
почему запрос так долго работает?
|
|||
|---|---|---|---|
|
#18+
пасиб, вроде быстрее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 13:20:14 |
|
||
|
почему запрос так долго работает?
|
|||
|---|---|---|---|
|
#18+
Кроме, того при DATEDIFF( ) не будут использоватся индекс по полю moment (если он увас есть). Поэтому я предпочитаю запросы вида WHERE q.moment BETWEEN '2002-08-27 15:24:00' AND '2002-08-28 15:24:00' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2002, 14:01:08 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32049655&tid=1820430]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 390ms |

| 0 / 0 |
