加入SQL View在SQL Server 2016中花费更多时间

问题描述 投票:-1回答:1

刚才我们已将数据库从SQL Server 2012迁移到SQL Server 2016.我们在SQL Server 2016上遇到了一些性能问题。

我已经确定有一种观点正在接受以下时间:

  • SQL Server 2012:1秒
  • SQL Server 2016:3分钟

我不知道为什么SQL Server的行为如下。

我已经做了一些分析,我发现如果我加入任何临时表视图需要花费大量时间。例如 :

Declare @ReID int

Select * 
From View 
Where REID = @REID --1 sec

Select * 
From Temptable 
Inner Join view On view.id = temptable.id - taking 3 min

注意:临时表只有1条记录。

我们完成了重建索引,统计等。

请提供您的输入,为什么SQL Server 2016的行为如下?

sql sql-server database sql-server-2008
1个回答
0
投票

您的View的REID字段似乎有一个性能良好的索引但您还需要ID字段的第二个索引。因为您的联接位于ID字段上并且可能导致全表扫描

© www.soinside.com 2019 - 2024. All rights reserved.