
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.03.2004, 19:52
|
|||
|---|---|---|---|
быстрый запрос |
|||
|
#18+
Здравствуйте! Есть три таблицы. Имеем запрос: select a.dt, coalesce(b.prih, 0) as prih, (select first 1 coalesce(c.ost, 0) from statost c where c.data <= a.dt and c.tid = xxxx order by c.data desc) as ost from (ar_dt a left join statprih b on a.dt = b.data and b.tovid = xxxx) В a находятся даты (идут подряд с Д1 по Д2) по которым делается выборка. В b находятся приходы (был Дn приход – есть запись, не было – нет). В c находится статистика остатков, причем для экономии остаток заносится, только если он отличается от предыдущего. Если запрос писать с двумя join’ами может получиться следующая таблица: Dt prih ost 14.02.2004 0 100 15.02.2004 10 80 16.02.2004 0 90 17.02.2004 0 null 18.02.2004 0 80 Надо, чтобы в таком случае вмесио null подставлялся предыдущий остаток Запрос с двумя join’ами выполняется ~0 ms, а полный – ~16 ms. Выборки идут по группам от 1000 до 10000 товаров, т.е. получается 16 – 160 сек., что очень много. Реально ли оптимизировать такой запрос? FB1.5 Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1579079]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 405ms |

| 0 / 0 |
