|
|
|
Оптимизация запроса SQL
|
|||
|---|---|---|---|
|
#18+
Добрый день! Прошу совета в оптимизации запроса в части уменьшения времени. БД локальная (Absolute DataBase). Есть 2 таблицы: Таблица №1 "Tab1": ID, Name, и т.д. Таблица №2 "Tabl2": ID, Tabl1ID (Integer), Type (Integer), Price (Currency), cData (DataTime) Для поиска суммы по полю Price таблицы №2 для заданного промежутка времени делаю запрос: SELECT (SELECT SUM(Price) FROM Tabl2 WHERE Tabl1ID=Tabl2.ID AND Type=1 AND cData BETWEEN "01.01.2014" AND "31.01.2014") AS c1, (SELECT SUM(Price) FROM Tabl2 WHERE Tabl1ID=Tabl2.ID AND Type=1 AND cData BETWEEN "01.02.2014" AND "28.02.2014") AS c2, (SELECT SUM(Price) FROM Tabl2 WHERE Tabl1ID=Tabl2.ID AND Type=1 AND cData BETWEEN "01.03.2014" AND "31.03.2014") AS c3, (SELECT SUM(Price) FROM Tabl2 WHERE Tabl1ID=Tabl2.ID AND Type=1 AND cData BETWEEN "01.04.2014" AND "30.04.2014") AS c4, (SELECT SUM(Price) FROM Tabl2 WHERE Tabl1ID=Tabl2.ID AND Type=1 AND cData BETWEEN "01.05.2014" AND "31.05.2014") AS c5, ... (SELECT SUM(Price) FROM Tabl2 WHERE Tabl1ID=Tabl2.ID AND Type=1 AND cData BETWEEN "01.12.2014" AND "31.12.2014") AS c12 FROM Table1 При увеличении количества строк Tabl2 скорость запроса падает значительно. Как можно переделать запрос, что бы уменьшить время ответа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 15:00 |
|
||
|
Оптимизация запроса SQL
|
|||
|---|---|---|---|
|
#18+
В нормальной СУБД можно написать так: Код: sql 1. 2. 3. 4. где F() - функция или выражение, выделяющее месяц и год из даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 15:06 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=24&tid=1540683]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 151ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...