【问题标题】:SQL Azure STDistance performanceSQL Azure STDistance 性能
【发布时间】:2015-01-30 19:32:29
【问题描述】:

我在 SQL Azure 上的 STDistance 函数存在很大的性能问题。

我正在测试相同的查询

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

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

该查询在我的本地工作站中用时不到 1 秒,而在 SQL Azure 上用时大约 9 秒。

其他人有同样的问题吗?

费德里科

【问题讨论】:

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


    【解决方案1】:

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

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

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

    • 最大限度地减少应用中的网络往返

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

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

    谢谢

    西尔维娅·杜姆拉

    【讨论】:

      【解决方案2】:

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

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

      应用程序级缓存有助于避免重复查询时访问数据库。

      【讨论】:

        【解决方案3】:

        您可能还需要根据此处AzureSQL-ServierTier_PerformanceLevelAzureSQL-ServierTier_PerformanceLevel

        的基准来调查需要哪个服务层和性能级别

        【讨论】:

          猜你喜欢
          • 2011-03-21
          • 1970-01-01
          • 2012-07-02
          • 1970-01-01
          • 1970-01-01
          • 2013-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多