-1
Я пытаюсь избавиться от операции поиска ключей в объяснении плана следующего запроса:Не может избавиться от поиска ключей в плане объяснения
SELECT s.CompanyId ,
t.PeriodEndDate ,
t.DurationId ,
s.conceptid AS SConceptId ,
c.ConceptId AS CConceptId,
t.NumOfPeriods ,
cast(cast(s.Value as numeric) as varchar(100)) as Value,
s.ConceptId * 17.0 AS ConceptOrdering ,
t.CompoundSortKeyLogicalKey,
1980 + (s.NumberOfQuarters/4) AS FiscalYear,
(s.NumberOfQuarters % 4) + 1 AS FiscalQuarter,
cam.Alias
FROM [dbo].[TmpCompanyOrderedAndFilteredPKs] t
INNER JOIN [dbo].[synt_ScreenerDb_dbo_ScreenerHistoricalYTD_Number_t] s ON s.CompanyId = t.CompanyId
AND s.numberofquarters = t.numberofquarters AND ((t.numberOfQuarters % 4) + 1) = 4
INNER JOIN [##FinancialsConcepts7FD96D75-FCDB-44B0-9DED-6FE0BC128982] c ON c.ConceptMapId = s.ConceptId
LEFT JOIN dbo.ConceptAliasMapping cam ON cam.ConceptId = c.ConceptId
WHERE t.OperationGUID = '7FD96D75-FCDB-44B0-9DED-6FE0BC128982'
Я попытался создать индексы на следующие столбцы:
Value, ConceptId, CompanyId, NumberOfQuarters
с различной комбинацией на указательный и включаемые столбцы. Что я упустил?
просто создать некластеризованный индекс IX__ScreenerHistoricalYTD_Number_t_CompanyId на ScreenerHistoricalYTD_Number_t (CompanyID) --include (conceptid, Value, NumberOfQuarters) было достаточно –