0
我想在下面的查询运行约3秒imporve性能。我不熟悉SQL中的执行计划分析和索引。mssql日期字段性能问题
我已经有DateFrom和DateTo文件(2个独立索引和一个组合索引)的索引。我试图在DateLiveActual文件上创建索引,但这些索引都没有出现在执行计划中。
你能帮我优化查询吗?
declare @today date = convert(date,GETUTCDATE());
DBCC DROPCLEANBUFFERS
SELECT
S.LocationId
,SBP.CurrencyId
,SUM(CASE
WHEN S.ServiceStatusId = 1 THEN COALESCE (SBP.MRR, 0)
ELSE 0
END) AS ActiveMRR
,MIN(S.DateLiveActual) AS MinServiceDateLiveActual
FROM dbo.service_Service AS S
INNER JOIN dbo.billing_ServiceBillingPeriod AS SBP ON SBP.ServiceId = S.Id
WHERE
SBP.DateFrom <= @today AND (SBP.DateTo >= @today OR SBP.DateTo IS NULL)
GROUP BY S.LocationId, SBP.CurrencyId
该索引改进了1秒的性能,感谢您的输入..但是Min(DateLiveScheduled)需要1秒。无论如何,我们可以加快速度。实际上它在service_Service表上,所以SQL默认采用PK的索引。 – Raghav