У меня есть хранимая процедура, которая не только огромна, но и очень интенсивна. Эта первая хранимая процедура создается для подробного отчета. Вторая хранимая процедура вызывает первую хранимую процедуру, помещает информацию в временную таблицу и затем выбирает информацию из этой временной таблицы и суммирует ее.Подвести информацию из одной хранимой процедуры в другой хранимой процедуре
Теперь второй хранимой процедуре не нужна вся информация в хранимой процедуре подробно, она нуждается лишь в некоторой ее части.
Наш DBA назвал этот подход безрассудным и сделал другие предложения, такие как «сохраняйте это на реальной таблице, чтобы он запускался один раз в день». На самом деле этого не произойдет, потому что многочисленные пользователи могут запускать любой отчет много раз в день и для разных диапазонов дат. Его другое предложение было для SUM без временной таблицы, но я не уверен, как вы выбираете из одной хранимой процедуры только определенные поля.
У меня есть два вопроса: как я буду следовать его второму предложению SUM без таблицы temp, и если это невозможно сделать, есть ли у кого-нибудь предложения по наилучшему подходу к обобщению необходимых данных для сводки отчет?
Обе эти хранимые процедуры предназначены для отдельных отчетов. Один для подробностей, а другой отчет - сводка. Конечные пользователи могут запускать их для разных магазинов и разных периодов времени.
Как бы эта работа, когда конечный пользователь может запустить его в течение какого-либо периода времени? – DataGirl
Вам нужно будет указать любые столбцы, которые необходимо фильтровать в представлении. Поэтому, если есть дата начала или окончания, которую вы фильтруете, вам необходимо удалить это из предложения where, которое заполняет ваше представление и включать его в вашу сохраненную логику proc. –