День добрый!
Возникла такая ситуация, есть несколько(около 20) процедур отчетов, в которых используются временные таблицы, в каждой из процедур таблицы строятся с разной логикой. Внутри каждой процедуры есть код, который обрабатывает данные из временных таблиц, строит новые таблицы и т.п. Этот код одинаковый во всех процедурах и повторяется в каждой из них(на примере находится внутри --start и -- end). Соответственно очень удобно были бы создать отдельную процедуру с этим кодом и вызывать ее из процедур отчетов.
Так в принципе и сделали, до меня, и оно даже работает. Но! Эту внутреннюю процедуру невозможно запустить автономно, скажем для улучшения производительности, каких-либо изменений и т.п. Внутренняя процедура содержит более тысячи строк кода, поэтому работать с ней практически невозможно. Хотелось бы узнать, как можно оптимизировать такую ситуацию.
Вот грубый пример:
Возникла такая ситуация, есть несколько(около 20) процедур отчетов, в которых используются временные таблицы, в каждой из процедур таблицы строятся с разной логикой. Внутри каждой процедуры есть код, который обрабатывает данные из временных таблиц, строит новые таблицы и т.п. Этот код одинаковый во всех процедурах и повторяется в каждой из них(на примере находится внутри --start и -- end). Соответственно очень удобно были бы создать отдельную процедуру с этим кодом и вызывать ее из процедур отчетов.
Так в принципе и сделали, до меня, и оно даже работает. Но! Эту внутреннюю процедуру невозможно запустить автономно, скажем для улучшения производительности, каких-либо изменений и т.п. Внутренняя процедура содержит более тысячи строк кода, поэтому работать с ней практически невозможно. Хотелось бы узнать, как можно оптимизировать такую ситуацию.
Вот грубый пример:
Create Procedure Pr_Report1 ( @a AS NVARCHAR(MAX), @b AS UNIQUEIDENTIFIER ) AS BEGIN ... Create table #t (id int, col1 int, col2 nvarchar(10) insert into #t select ... from table1 where... --start select * into #tt from table2 inner join #t on... ... delete from #t where... --end select... from #t where... ... END