Увидимся в чем проблема ...
SELECT
SUM(A.POSTEDQTY),
SUM(A.POSTEDVALUE),
SUM(A.PHYSICALVALUE),
SUM(A.DEDUCTED),
SUM(A.RECEIVED),
SUM(A.RESERVPHYSICAL),
SUM(A.RESERVORDERED),
SUM(A.REGISTERED),
SUM(A.PICKED),
SUM(A.ONORDER),
SUM(A.ORDERED),
SUM(A.ARRIVED),
SUM(A.QUOTATIONRECEIPT),
SUM(A.QUOTATIONISSUE),
SUM(A.AVAILPHYSICAL),
SUM(A.AVAILORDERED),
SUM(A.PHYSICALINVENT)
FROM
INVENTSUM A WITH(NOLOCK)
WHERE
((A.DATAAREAID = @P1)
AND ((A.ITEMID = @P2)
AND (A.CLOSED = @P3)))
AND EXISTS (SELECT 'x' FROM INVENTDIM B WITH (NOLOCK)
WHERE ((B.DATAAREAID = @P4)
AND ((((B.INVENTDIMID = A.INVENTDIMID) AND (B.CONFIGID = @P5))
AND (B.INVENTLOCATIONID = @P6)) AND (B.INVENTBATCHID = @P7))))
Низкая производительность запроса
declare @p2 int
set @p2=180157421
declare @p3 int
set @p3=16
declare @p4 int
set @p4=1
declare @p5 int
set @p5=1
exec sp_cursorexecute 1073741895,@p2 output,@p3 output,@p4 output,@p5 output,N'ens',N'V89710821',0,N'ens',N'PO16628',N'AS',N'OFS028748'
select @p2, @p3, @p4, @p5
Параметры запроса медленная производительность
SELECT SUM(A.POSTEDQTY),SUM(A.POSTEDVALUE),SUM(A.PHYSICALVALUE),SUM(A.DEDUCTED),SUM(A.RECEIVED),SUM(A.RESERVPHYSICAL),SUM(A.RESERVORDERED),SUM(A.REGISTERED),SUM(A.PICKED),SUM(A.ONORDER),SUM(A.ORDERED),SUM(A.ARRIVED),SUM(A.QUOTATIONRECEIPT),SUM(A.QUOTATIONISSUE),SUM(A.AVAILPHYSICAL),SUM(A.AVAILORDERED),SUM(A.PHYSICALINVENT) FROM INVENTSUMDELTA A WHERE ((A.DATAAREAID=@P1) AND (((A.ITEMID=@P2) AND (A.ISAGGREGATED=@P3)) AND (A.TTSID=@P4))) AND EXISTS (SELECT 'x' FROM INVENTDIM B WHERE ((B.DATAAREAID=@P5) AND ((((B.INVENTDIMID=A.INVENTDIMID) AND (B.CONFIGID=@P6)) AND (B.INVENTLOCATIONID=@P7)) AND (B.INVENTBATCHID=@P8))))
Тот же запрос, хорошая производительность
declare @p2 int
set @p2=180157423
declare @p3 int
set @p3=16
declare @p4 int
set @p4=1
declare @p5 int
set @p5=1
exec sp_cursorexecute 1073741904,@p2 output,@p3 output,@p4 output,@p5 output,N'ens',N'V89710821',0,5666550353,N'ens',N'PO16628',N'AS',N'OFS028748'
select @p2, @p3, @p4, @p5
Параметры того же запроса, хорошая производительность
В SQLServer Profiler вы можете видеть, что тот же запрос выполняется за 0 мс или более 10000 мс
И если я попытаюсь выполнить тот же запрос (10000мс) с теми же параметрами напрямую, это займет 0мс
Что происходит?
Спасибо !! :)