2015-04-24 52 views
1

我們當前正在運行兩個SQL Server實例。出於開發目的,我們在辦公室的桌面PC上運行本地數據庫。SQL查詢在本地桌面SQL Server Express上的運行速度比在Azure中的SQL Server上運行速度快10倍

的PC具有以下數據:

  • 8 GB的RAM
  • AMD速龍5350 APU與的Radeon(TM)R3 2.05 GZ
  • 64位Windows 8.1
  • 的Microsoft SQL Server 2014 - 12.0 .2000.8(X64)快捷版(64位)
  • HDD希捷ST1000DM003 1個TB

該服務器位於Azure中,作爲運行預先提供的Windows Server 2012 R2 Datacenter映像的VM Standard-Aier A3

現在我們面臨的問題是,完全相同的查詢在桌面上本地運行的速度比在服務器上。

我通過本地網絡通過TCP/IP連接到本地安裝Management Studio的PC。當我連接到服務器時,我使用遠程桌面連接並在服務器上啓動管理工作室的本地實例。

我已經將連接模式從默認連接模式更改爲服務器上的TCP/IP,使默認連接速度降低了10倍,速度降低了20倍。即使改用命名管道,性能也會變差。

也重寫查詢和使用不同的方法,總是快速版本比服務器快得多。我們沒有對服務器端的快速版本安裝進行任何配置或調整。

任何意見非常感謝!

最佳 西蒙

+3

你看實際的執行計劃?他們是一樣的嗎? –

+1

您確定它確實是查詢,而不是將結果從服務器傳輸到客戶端所需的時間?你檢查過查詢的運行時間和執行計劃嗎?在SQL Managament Studio中,使用菜單「查詢」 - >「包括實際執行計劃」和「包括客戶統計」。然後運行你的查詢,並看看。 –

+2

@GeorgScholz如果我沒有弄錯,OP說他們通過RDP登錄到服務器並在服務器上運行SSMS來執行查詢。這意味着客戶端和服務器在每種情況下都在同一臺機器上。 –

回答

0

是您的本地機器有SSD?如果是這樣的話,這很正常。

嘗試重建使用的索引。

更新數據庫/表統計信息。執行計劃可以是相同的,但是數據不好,我經常看到性能很低。特別是如果你做了很多插入/刪除。

您可以看到SET STATISTICS IO ON是否有問題。查看錶的邏輯讀取,工作表的順序等。檢查它是否與本地服務器不同。

+0

我們只有一個希捷ST1000DM003 1TB,個人電腦中的磁盤。在該過程中,我們爲每次執行刪除並重新創建索引以避免碎片。成本是最低的,我們與此同時進行。我現在更新了表格統計信息,並且在這些表格上有需要更新的系統索引。目前該腳本正在運行5000個工作,我會讓它完成,因爲我們需要在線數據。星期一我會回答你這個問題的答案。 – skratzsch

+0

這個答案更適合作爲評論,因爲它提出了更多問題(而且我們還沒有根本原因)。並在評論中的後續信息?它不應該被埋在這裏。它應該是對原始問題的編輯。 –

+0

對不起。我編輯了我的帖子,所以它更像是一個反應而不是評論(我不是很習慣使用stackoverflow)? 根本原因,在我看來,統計... –

0

您應該添加以下在查詢的頂部,看看那裏的區別是:

SET STATISTICS TIME ON

SET STATISTICS IO ON

+1

這不是一個答案。這是一種幫助確定答案的方法。埃爾戈對這個問題發表評論。 –

相關問題