2014-12-02 50 views
0

SQL Azure上的STDistance函數有一個很大的性能問題。SQL Azure STDistance性能

我在SQL Azure數據庫(標準),並在我的本地機器的數據庫測試相同的查詢

SELECT Coordinate 
FROM MyTable 
WHERE Coordinate.STDistance(@Center) < 50000 

。 相同的數據庫,相同的索引(座標上的空間索引),相同的數據(400k行),但我得到了兩個不同的執行時間。

查詢在本地工作站中的時間不到1秒,在SQL Azure上的時間差不多是9秒。

其他人有同樣的問題?

費德里科

回答

1

你可以試試下面的東西,以減少網絡延遲:

  • 選擇最接近於廣大用戶的數據中心

  • 與您的應用程序,如果合作找到您的數據庫您的應用程序也在Windows Azure中

  • 儘量減少應用程序中的網絡往返次數

我強烈建議你閱讀this Azure SQL DB Perf指導。

除此之外,請檢查數據庫的現有服務層,看看性能是否被限制。在這種情況下,您可能需要升級數據庫的服務層。如果您想監視性能並調整性能級別,請使用this鏈接。

感謝

西爾維婭Doomra

1

查詢性能取決於多種因素,其中有一種是你的表現層。驗證如果你打你的資源限制(sys.resource_stats從主數據庫DMV)

除此之外還有你可以考慮驗證一些其他因素:在Azure上,網絡延遲 索引碎片,鎖定等

如果查詢正在重複,應用程序級高速緩存有助於避免觸擊數據庫。