2012-09-14 110 views
0

SQL Server 2008 R2的交叉连接查询执行缓慢。它在我们的系统中造成了太多问题。可以在Sql server 2012上迁移解决交叉连接问题。之前我们使用的是sql 2005,我们没有这样的问题。但我们现在不能退回。我不知道这解决了我的问题。在执行交叉连接查询时,2012年的性能比2008年更好?SQL Server 2008 R2对SQL Server 2012

select '37' as orddate,brand from maindb1.dbo.contract_report where jobnumber in (select  distinct [Job Number] from maindb1.dbo.v_alltype_st where [day] like '%2012' and DATEPART(WEEK,CONVERT(datetime,[DAY],103))='37') and brand<>'' and brand<>'N/A' 

在周围32秒

select brand from maindb1.dbo.contract_report where jobnumber in (select distinct [Job Number] from maindb1.dbo.v_alltype_st where [day] like '%2012' and DATEPART(WEEK,CONVERT(datetime,[DAY],103))='37') and brand<>'' and brand<>'N/A' 

在约7分钟,下面的一个以上运行的唯一的区别在于一个以上具有一个额外字段。

一个是表和一个是视图。这不是唯一的例子。

+2

将它安装在类似的机器上并运行一些测试。 – ChrisF

+0

同意Chris的评论,但是如果您发布了一些查询的详细信息,我们可能会提供帮助。 – Paddy

+1

也许你可以显示一个缓慢的查询,描述支持查询的索引,显示一个实际的执行计划等。 –

回答

1

如果你看到在2008 R2的性能问题,你没有看到2005年,这个数据库直接升级或通过备份迁移/还原或分离/附加,你应该确保:

(一)所有相关表格

(b)确保您set compatibility level to 100

一般手动update statistics,SQL Server 2012中应主要归因于优化改进提供潜在的性能增强。我不相信有任何针对交叉连接的增强功能,但我也不知道源代码,因此无论如何都很难知道。

+0

通过备份迁移 – Vikky

+1

然后是的,你需要 - 至少 - 在更新后执行比较测试*统计和升级兼容性级别。 –