SQL Server 2008 r2では、クロス結合クエリの実行が遅くなります。それは私たちのシステムにあまりにも多くの問題を引き起こしています。SQL Server 2012での移行により、相互結合の問題を解決できますか。以前は、そのような問題がないsql2005を使用しています。しかし、今は戻ることができません。これで問題が解決するかどうかはわかりません。また、パフォーマンス面では、クロス結合クエリの実行において、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'
唯一の違いは、上記のフィールドには1つの追加フィールドがあることです。
1つはテーブルで、もう1つはビューです。これが唯一の例ではありません。