powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите с алгоритмом
3 сообщений из 3, страница 1 из 1
Подскажите с алгоритмом
    #39402013
rekrabbe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
- Есть некий запрос, который возвращает данные из БД по заданным параметрам, например по дате "с" и "по".

- Возвращаемые этим запросом столбцы являются аргументами для функции данные в этих столбцах не просто поля в базе, а результат какого то вычисления запроса.

- Функция рассчитывает данные внутри и возвращает строку с результатом для каждой строки главного запроса.

- Проблема в том, что функция тоже обращается к базе на каждую строку главного запроса и получается так, что чем больше строк вернет главный запрос, тем дольше он будет выполняться.

- Как можно реализовать функцию, чтобы она читала данные из базы для расчета данных главного запроса, не для каждой строки, а например один раз читала данные из базы сохраняла бы куда то, а после проводились бы вычисления?
...
Рейтинг: 0 / 0
Подскажите с алгоритмом
    #39402015
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
global temporary table
...
Рейтинг: 0 / 0
Подскажите с алгоритмом
    #39402329
rekrabbe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, запрос стал отрабатывать в разы быстрее.
Реализовал следующим образом:
- Создал две global temporary tables on commit preserve rows
- Процедуру, которая заполняет эти временные таблицы, данными из старой функции
- Переделал старую функцию, теперь она выбирает данные из временных таблиц
- Функцию pipelined (после begin выполняется процедура по наполнению временных таблиц), которая реализует главный запрос и в ней же подставляется функция с выборкой из временных таблиц
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите с алгоритмом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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