2012-09-14 286 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

然後是的,你需要 - 至少 - 在更新後執行比較測試*統計和升級兼容性級別。 –