SQL Server 2008 r2 的交叉连接查询执行速度很慢。它在我们的系统中造成了太多问题。Sql server 2012 上的迁移可以解决交叉连接问题。早些时候我们使用的是 sql 2005,我们没有这样的问题。但我们现在不能搬回去。我不知道这是否解决了我的问题。在执行交叉连接查询方面,2012 年的性能优于 2008 年 r2 吗?
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'
以上运行约 7 分钟,以下运行约 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'
唯一的区别是上面有一个额外的字段。
一个是表,一个是视图。这不是唯一的例子。