2015-10-06 39 views
2

我將數據庫從SQL Server 12.0.2548.0轉換爲Azure SQL數據庫V12。 我使用SQL Database Migration Wizard,所以它應該是關於索引,鍵,數據,表等的數據庫。在Azure SQL數據庫中查找性能問題

但是,性能通常會慢很多,我有一個特定的查詢需要7秒鐘的SQL服務器數據庫,並且它需要20分鐘分鐘(!)在Azure SQL數據庫上。在Azure SQL數據上 - 這是一個S3 - CPU和DTU的使用率在整個20分鐘內達到100%。
我已經使用EXEC sp_updatestats重新生成了Azure SQL數據庫上的索引。

我在這裏有點茫然,我是開發人員,而不是DBA。
我應該從哪裏開始找出造成這種性能極端差異的原因?

+0

您的查詢完全是什麼?您是否已經在本地和Azure數據庫上獲得實際(不是估計的)執行計劃?他們之間有什麼不同嗎? – Dai

+0

@戴:不,我沒有得到Azure數據庫上的實際執行計劃。但是,我意識到估計的執行計劃給了我一些關於缺失索引的提示。在我添加這兩個索引後,性能與本地相同。值得注意的是,在本地數據庫中缺少這些索引,所以最初的問題仍然是有效的:性能方面的差異如何? –

+0

查詢本身是使用CTE('WITH'關鍵字)的兩個複雜查詢的聯合。 –

回答

0

通常,在遷移到Azure時,我會運行一組DMV以確保性能和正確的計劃。

我寫了這些腳本來幫助這個過程。

https://onedrive.live.com/redir?resid=F23F4F5BBCE95F19!150367&authkey=!AF6F4x3mZAyA8qQ&ithint=file%2czi_

更改憑據和連接字符串中SQLDiagnostics.bat

我通常尋找: 最差查詢(CPU和IO) 缺失索引 索引碎片 Azure的SQL負載 查詢迴歸(使用查詢商店)。

讓我知道它是否有助於您排除故障?