您能否指出正确的方向,以找出为什么一个计划缓存与另一个数据库中的另一个计划缓存不同。一个数据库较旧且数据较少,但架构和兼容模式应该是完整的。
我已经完成了诸如 freeproc、重置统计信息、全面扫描等操作。一个似乎在进行索引扫描,而另一个似乎在进行索引搜索。它们具有相同的索引,统计数据看起来相似但不准确。该查询列在 blitzCache 中,但没有警告。
生产 https://www.brentozar.com/pastetheplan/?id=rkU8tqhmY
开发 https://www.brentozar.com/pastetheplan/?id=S1-XYc2mY
ALTER PROCEDURE [GetTeamPlayerCount]
@EventId INT,
@Active INT = 1
AS
BEGIN
SET NOCOUNT ON;
SELECT
tp.TeamId,
COUNT(*) AS [Count]
FROM
Division d
INNER JOIN
DivisionTeam dt ON dt.DivisionId = d.Id
INNER JOIN
TeamPlayer tp ON dt.Id = tp.TeamId
WHERE
d.EventId = @EventId AND tp.Active = @Active
GROUP BY
tp.TeamId
END