标签:
DECLARE @GEO1 GEOMETRY, @GEO2 GEOMETRY, @Lat1 FLOAT, @Long1 FLOAT, @Lat2 FLOAT, @Long2 FLOAT SELECT @GEO1=GEOMETRY::STGeomFromText(‘POINT(1 1 1)‘,0), @GEO2=GEOMETRY::STGeomFromText(‘POINT(2 2 2)‘,0) SELECT @GEO1.STDistance(@GEO2) --,@GEO1,@GEO2 SELECT @Lat1 = @GEO1.STX, @Long1 = @GEO1.STY, @Lat2 = @GEO2.STX, @Long2 = @GEO2.STY SELECT POWER(POWER(@Lat1-@Lat2,2) + POWER(@Long1-@Long2,2),0.5)
其实结果是一样的,但是看下执行计划,直接调用Distance的方法占用运算比例就100%了。如果在数据量比较大的时候,这个运算带来的性能差异就会越来越明显。所以如果是简单应用的话,可以考虑直接套用几何公式而不要直接调用函数,当然也可以看下能否使用空间索引
参考地址:https://msdn.microsoft.com/zh-cn/library/ff929109(v=sql.120).aspx
标签:
原文地址:http://www.cnblogs.com/Gin-23333/p/4995199.html