sencsk Ответов: 1

Как избежать многократного выполнения хранимых процедур


Привет Эксперты,
Я прошу у вас предложения и идеи для выполнения моей просьбы.

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

я хочу сказать, что у меня есть 30 ветвей, так что каждый день будет происходить минимум 40-50 казней. мой план состоит в том, что я один раз выполняю хранимую процедуру, а затем получаю записи для всех ветвей и помещаю их в одну глобальную таблицу после этого всякий раз, когда клиентская сторона пытается сгенерировать отчет, мы можем получить данные отчета из глобальной таблицы . потому что его прямая (select * from globaltable where date and branch вместо того чтобы так много присоединяться)

является ли это правильным способом или, пожалуйста, предложите мне любой другой способ добиться этого, чтобы улучшить производительность системы.

Что я уже пробовал:

Нужна идея, чтобы избежать выполнения одной и той же процедуры несколько раз.

1 Ответов

Рейтинг:
0

Kornfeld Eliyahu Peter

Как SPs, рожденные для одновременного запуска, вы должны быть здесь творческими...
Подумайте о чем-то вроде этого:

1. Check if there is a temp table by name of today date
2. No - create one and run the rest of the SP to push data into, then select data from the table
3. Yes - select data from the table


sencsk

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

Kornfeld Eliyahu Peter

Затем оберните SP в другой SP и запустите его для каждого дня в вашем временном интервале...
Тогда оболочка может вернуть объединение всех соответствующих таблиц...
Другой идеей может быть обработка контрольной таблицы...
Если в контрольной таблице нет указания на текущий день, то переместите данные в таблицу данных и обновите контрольную таблицу...
Это даст вам единую таблицу с данными за несколько дней..

sencsk

я создаю одно задание для вставки строк каждые 30 минут. Я вставляю результат хранимой процедуры в одну новую таблицу. так есть ли способ синхронизировать newtable с выводом хранимой процедуры?