question

Prash2214 avatar image
Prash2214 asked

Stored procedure taking time with parameter

When i execute below query on production server it take max 2 seconds but if i use this query in procedure i am not getting any response . i don't understand this behaviour so kindly help me.


/*== Not getting response of query without store procedure ==*/

alter PROCEDURE [dbo].[USP_MonthlySales_PrimarySecondaryTarget_HQwiseProd_HP_PM] @dtMonth Date

AS

BEGIN

DECLARE @dtCurDate DATETIME

SET @dtCurDate = DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))

SELECT COUNT(1)

FROM (SELECT CG.fk_GMGlCode AS fk_HQGlCode,

PD2.fk_ProductGlCode AS fk_ProdGlCode,

PD.dtDate AS dtMonth,

PD2.fk_DivisionGlCode,

SUM(PD.decQuantity) AS decSecondaryQty,

SUM(PD.decAmt) AS decSecondaryValue,

SUM(PD.decClosing) AS decSecondaryClosingQty,

SUM(ISNULL(PD.decClosing, 0) * ISNULL(PD.decPTS, 0)) AS decSecondaryClosingValue

FROM dbo.Secondary_Data AS PD WITH (NOLOCK)

INNER JOIN dbo.Channel_Geo AS CG WITH (NOLOCK) ON CG.fk_ChannelGlCode = PD.fk_ChannelGlCode_Stk

AND (CG.dtFromDate <= @dtCurDate)

AND (CG.dtToDate IS NULL OR CG.dtToDate >= @dtCurDate)

INNER JOIN dbo.Geo_Mst AS GM ON GM.intGLCode = CG.fk_GMGlCode

INNER JOIN dbo.Product_Details AS PD2 ON PD2.fk_ProductGlCode = PD.fk_ProductGlCode

AND (PD2.dtFromDate <= @dtCurDate)

AND (PD2.dtToDate IS NULL OR PD2.dtToDate >= @dtCurDate)

AND GM.fk_DivisionGlCode = PD2.fk_DivisionGlCode

WHERE PD.dtDate = @dtMonth

GROUP BY CG.fk_GMGlCode,

PD2.fk_ProductGlCode,

PD.dtDate,

PD2.fk_DivisionGlCode) AS TT

LEFT JOIN dbo.Monthly_Sales_Data AS MSD ON MSD.fk_GMGlCode = TT.fk_HQGlCode

AND MSD.fk_ProductGlCode = TT.fk_ProdGlCode

AND MSD.dtDate = TT.dtMonth

AND MSD.varDataType = 'HP'

WHERE MSD.intGLCode IS NULL

END


/*== getting response of query without store procedure ==*/


DECLARE @dtCurDate DATETIME

SET @dtCurDate = DATEADD(DAY, 0, DATEDIFF(DAY, 0, GETDATE()))


DECLARE @dtMonth DATE = '2022-10-01'


SELECT COUNT(1)

FROM (SELECT CG.fk_GMGlCode AS fk_HQGlCode,

PD2.fk_ProductGlCode AS fk_ProdGlCode,

PD.dtDate AS dtMonth,

PD2.fk_DivisionGlCode,

SUM(PD.decQuantity) AS decSecondaryQty,

SUM(PD.decAmt) AS decSecondaryValue,

SUM(PD.decClosing) AS decSecondaryClosingQty,

SUM(ISNULL(PD.decClosing, 0) * ISNULL(PD.decPTS, 0)) AS decSecondaryClosingValue

FROM dbo.Secondary_Data AS PD WITH (NOLOCK)

INNER JOIN dbo.Channel_Geo AS CG WITH (NOLOCK) ON CG.fk_ChannelGlCode = PD.fk_ChannelGlCode_Stk

AND (CG.dtFromDate <= @dtCurDate)

AND (CG.dtToDate IS NULL OR CG.dtToDate >= @dtCurDate)

INNER JOIN dbo.Geo_Mst AS GM ON GM.intGLCode = CG.fk_GMGlCode

INNER JOIN dbo.Product_Details AS PD2 ON PD2.fk_ProductGlCode = PD.fk_ProductGlCode

AND (PD2.dtFromDate <= @dtCurDate)

AND (PD2.dtToDate IS NULL OR PD2.dtToDate >= @dtCurDate)

AND GM.fk_DivisionGlCode = PD2.fk_DivisionGlCode

WHERE PD.dtDate = @dtMonth

GROUP BY CG.fk_GMGlCode,

PD2.fk_ProductGlCode,

PD.dtDate,

PD2.fk_DivisionGlCode) AS TT

LEFT JOIN dbo.Monthly_Sales_Data AS MSD ON MSD.fk_GMGlCode = TT.fk_HQGlCode

AND MSD.fk_ProductGlCode = TT.fk_ProdGlCode

AND MSD.dtDate = TT.dtMonth

AND MSD.varDataType = 'HP'

WHERE MSD.intGLCode IS NULL

stored-proceduresperformanceoptimization
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

0 Answers

·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.