我在SQL Azure上使用STDistance函数遇到了很大的性能问题。
我正在测试相同的查询
SELECT Coordinate
FROM MyTable
WHERE Coordinate.STDistance(@Center) < 50000
在SQL Azure数据库(标准版)和本地计算机数据库上。 相同的数据库,相同的索引(坐标上的空间索引),相同的数据(400k行)但我有两个不同的执行时间。
在我的本地工作站中查询时间不到1秒,在SQL Azure上查询时间不到9秒。
其他人有同样的问题吗?
费德里科
答案 0 :(得分:1)
您可以尝试以下方法来减少网络延迟:
选择最接近大多数用户的数据中心
如果您的应用程序也在Windows Azure中,则将您的数据库与您的应用程序共同定位
尽量减少应用中的网络往返
我强烈建议您阅读this Azure SQL DB Perf指南。
除此之外,请检查数据库的现有服务层,看看性能是否有限。在这种情况下,您可能希望升级数据库的服务层。如果您想监控效果并调整效果级别,请使用this链接。
由于
Silvia Doomra
答案 1 :(得分:1)
查询性能取决于各种因素,其中一个因素是您的性能层。验证您是否达到了资源限制(来自master数据库的sys.resource_stats dmv)
除此之外,还有一些其他因素可以考虑验证: 天蓝色的索引碎片,网络延迟,锁定等。
如果查询重复,应用程序级缓存有助于避免命中数据库。
答案 2 :(得分:0)
您可能还需要根据此处的基准AzureSQL-ServierTier_PerformanceLevel
调查哪些服务级别和效果级别是必需的