У меня есть cte, и я использую вложенные циклические соединения для извлечения данных из 3 разных таблиц.Производительность очень низкая, и через некоторое время я получаю сообщение об ошибке тайм-аута.Я проверил план запроса и обнаружил, что проблема связана с объединениями вложенных циклов.
Как оптимизировать приведенный ниже запрос?Любая помощь / предложение будет высоко ценится.
with DCT as(
select distinct
p.PolicyReference as PolicyNumber,
Year(p.PolicyEffectiveDate) as PolicyYear,
reverse(substring(reverse(p.PolicyReference) , 1 , 2 )) as
PolicySequence,
p.PolicyEffectiveDate as InceptionDate,
p.PolicyExpirationDate as ExpirationDate,
p.AggregateLimitAmt_Orginal as AggregateLimit,
p.AttachmentPointAmt_Orginal as AttachmentPoint,
ch.DangerSignalDescription as DangerDescription,
ct.TransactiomAmountOriginal,
ch.PrimaryAllegation,
p.LOBCode as GLLOBCode,
p.BusinessUnit as GLLOBName,
p.ProducingOfficeCode as Office,
Null as CatCode,
p.PolicyBasisCode as PolicyTrigger,
Getdate() As ProcessDate,
From [vwPolicy] p
Inner Join [vwClaimHeader] ch ON p.PolicyReference = ch.PolicyReference
Inner Join [vwClaimTransactions] ct ON ch.ClaimSuffix = ct.ClaimSuffix)
select * from DCT;
Я прикрепил выполнение плана запроса, и, как вы можете видеть, вложенные циклы занимают 82%.Как мне это преодолеть.Это довольно простой запрос.