SQL Azure STDistance性能

时间:2014-12-02 14:05:09

标签: azure azure-sql-database spatial-query

我在SQL Azure上使用STDistance函数遇到了很大的性能问题。

我正在测试相同的查询

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

在SQL Azure数据库(标准版)和本地计算机数据库上。 相同的数据库,相同的索引(坐标上的空间索引),相同的数据(400k行)但我有两个不同的执行时间。

在我的本地工作站中查询时间不到1秒,在SQL Azure上查询时间不到9秒。

其他人有同样的问题吗?

费德里科

3 个答案:

答案 0 :(得分:1)

您可以尝试以下方法来减少网络延迟:

  • 选择最接近大多数用户的数据中心

  • 如果您的应用程序也在Windows Azure中,则将您的数据库与您的应用程序共同定位

  • 尽量减少应用中的网络往返

我强烈建议您阅读this Azure SQL DB Perf指南。

除此之外,请检查数据库的现有服务层,看看性能是否有限。在这种情况下,您可能希望升级数据库的服务层。如果您想监控效果并调整效果级别,请使用this链接。

由于

Silvia Doomra

答案 1 :(得分:1)

查询性能取决于各种因素,其中一个因素是您的性能层。验证您是否达到了资源限制(来自master数据库的sys.resource_stats dmv)

除此之外,还有一些其他因素可以考虑验证: 天蓝色的索引碎片,网络延迟,锁定等。

如果查询重复,应用程序级缓存有助于避免命中数据库。

答案 2 :(得分:0)

您可能还需要根据此处的基准AzureSQL-ServierTier_PerformanceLevel

调查哪些服务级别和效果级别是必需的