【发布时间】:2016-03-21 09:57:46
【问题描述】:
我正在尝试摆脱以下查询的解释计划中的 Key Lookup 操作:
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
在 INDEX 和 INCLUDE 列上使用不同的组合。我错过了什么?
【问题讨论】:
标签: sql-server indexing sql-server-2012