How to improve performance of my stored procedure.
This is my stored proc – it works fine , but it takes more than 5 minutes of time to get the result due to that its causing timeout from API
Note - @Include and @BeginDate these are the SP input parameter
DECLARE @BeginDate datetime ='2023-09-28'
DECLARE @from datetime
DECLARE @to datetime
DECLARE @Include BIT = 1
SET @from = DATEADD( dd, DATEDIFF( dd, 0, @BeginDate), 0)
SET @to = DATEADD( dd, DATEDIFF( dd, -1, @BeginDate), 0)
IF OBJECT_ID('tempdb..#results') IS NOT NULL DROP TABLE #results
CREATE TABLE #results
(
[BPID] [nvarchar](32) NOT NULL,
[DId] [bigint] NULL,
[Number] [nvarchar](32) NULL,
[Account] [nvarchar](32) NULL,
[LineOfBusinessDesc] [nvarchar](4) NULL,
[LineOfBusiness] [varchar](35) NULL,
[Channel] [varchar](35) NULL,
[ProductLine] [varchar](35) NULL,
[BusinessSegment] [varchar](35) NULL,
[LineOfBusinessType] [varchar](35) NULL
)
INSERT INTO #results
SELECT [PID]
,[DId]
,[Number]
,[Account]
,NULL
,NULL
,NULL
,NULL
,NULL
FROM dbo.DailyDataInfo
WHERE CreatedDate >= @from and CreatedDate < @to
IF @Include = 1
BEGIN
INSERT INTO #results
SELECT a.[PID]
,[DId]
,a.[Number]
,a.[Account]
,a.[LineOfBusiness]
,b.[LineOfBusiness]
,b.[Channel]
,b.[ProductLine]
,b.[BusinessSegment]
FROM dbo.OtherDailyData a
OUTER APPLY
(
select top 1 Id,
x.Data.value('(//Data/Company/LineOfBusiness)[1]', 'varchar(30)') as LineOfBusiness,
x.Data.value('(//Data/Company/Channel)[1]', 'varchar(30)') as Channel,
x.Data.value('(//Data/Company/ProductLine)[1]', 'varchar(25)') as ProductLine,
x.Data.value('(//Data/Company/BusinessSegment)[1]', 'varchar(25)') as BusinessSegment,
from dbo.TermData x
where x.Reference = a.Number
order by x.Id desc
) b
WHERE CreatedDate >= @from and CreatedDate < @to
END
SELECT * FROM #results
This is the sample Table data for dbo.DailyDataInfo
BPID DId Number Account LineOfBusiness
F886A11A6546199 1 9203919023 9203919023 HH
1802063B1312516 2 9203919031 9203919031 KJ
a4DEEF472650CB8 3 9203905782 9203905782 KJ
05D23BE7D263582 4 9203908786 9203908786 HHH
97F1C0E2FEC2EF 5 9203906228 9203906228 AA
B7819FC63CE669D 7 9203911962 9203911962 LKK
4DA4D30906FFB7E 8 9202809746 9202809746 HH
0CD8EC07699D3E8 9 9203858411 9203858411 AA
6A16BBBCD295741 10 9203918587 9203918587 AA
12021D6CB90AD01 11 9203905006 9203905006 LL
This is the sample Table data for dbo.OtherDailyData
BPId DId Number
9FE25361398013B 64 9340733736
20C072C8596503A 68 9340732569
6526588B6CFC49A 72 9340733502
2E42FBDD4B70C01 67 9340732569
40CC7CEB4465FE8 59 9340733831
20C072C8596503A 69 9340732569
19E8F18ABD2C49B 57 9340682728
DCA39F32A3A5170 66 9340733737
This is the sample Table data for dbo.TermData
TermId Reference Data
321432 9340703401 This is the xml column please refer the below sample value
Data Column Value
<Data>
<Allow>1</Allow>
<EligibilityFlag>0</EligibilityFlag>
<Company>
<LineOfBusiness>CCC</LineOfBusiness>
<LineOfBusinessType>
<LOBType>CommercialAuto</LOBType>
</LineOfBusinessType>
<Channel />
<ProductLine>Trad</ProductLine>
<BusinessSegment>E</BusinessSegment>
</Company>
<Info>
<Auditable>0</Auditable>
</Info>
</Data>