У меня есть очень сложная хранимая процедура, которую мы используем для сбора и манипулирования данными о продажах.Он запускается (обычно) менее чем за секунду в SQL Server.
Я хочу использовать необработанный вывод в качестве основы для другой хранимой процедуры, которая дополнительно обрабатывает данные для конкретной бизнес-цели.
В данный момент я просто определяю свою табличную переменную @results
и выполняю следующие действия:
@Results1 TABLE
(
HeadId INT,
AreaId INT,
BranchId INT,
SiteId INT,
Description VARCHAR(50),
EWC VARCHAR(8),
S_Volume NUMERIC(10,6),
S_Weight NUMERIC(10,6),
S_Volume_Recycle NUMERIC(10,6),
S_Weight_Recycle NUMERIC(10,6),
M_Volume NUMERIC(10,6),
M_Weight NUMERIC(10,6),
M_Volume_Recycle NUMERIC(10,6),
M_Weight_Recycle NUMERIC(10,6),
T_Volume NUMERIC(10,6),
T_Weight NUMERIC(10,6),
T_Volume_Recycle NUMERIC(10,6),
T_Weight_Recycle NUMERIC(10,6)
)
INSERT INTO @Results1
EXECUTE [dbo].[usp_MasterDataExtractVolumes]
N'01/01/2018',
N'01/01/2019',
1604,
NULL, NULL, NULL
SELECT *
FROM @results1
Хранимая процедура выполняется более 10 секунд (в 10 раз медленнее).
Я пытался использовать #results1
, а также
INSERT INTO @Results1
EXECUTE [dbo].[usp_MasterDataExtractVolumes]
N'01/01/2018',
N'01/01/2019',
1604,
NULL, NULL, NULL
Я пытался использовать OPENQUERY
без повышения производительности.