powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оптимизация запроса SQL
2 сообщений из 2, страница 1 из 1
Оптимизация запроса SQL
    #38850824
AndyFly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Прошу совета в оптимизации запроса в части уменьшения времени.
БД локальная (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 скорость запроса падает значительно.
Как можно переделать запрос, что бы уменьшить время ответа?
...
Рейтинг: 0 / 0
Оптимизация запроса SQL
    #38850833
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В нормальной СУБД можно написать так:
Код: sql
1.
2.
3.
4.
SELECT SUM(Table1.Price), F(Tabl2.cData)
FROM Table1, Tabl2
WHERE Table1.Tabl1ID=Tabl2.ID AND Tabl2.Type=1 AND Tabl2.cData BETWEEN начало_диапазона AND конец_диапазона
GROUP BY F(Tabl2.cData)

где F() - функция или выражение, выделяющее месяц и год из даты.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Оптимизация запроса SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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