使用地理距离扩展 SQL 查询

     2023-02-23     122

关键词:

【中文标题】使用地理距离扩展 SQL 查询【英文标题】:Extending SQL query with geography distance 【发布时间】:2013-08-09 18:09:07 【问题描述】:

我有一个 SQL Server 2012 数据库,其中包含 300 万条公司记录,您可以在其中使用名称和地址字段中的一些 where like 子句进行搜索。这工作得非常快。

现在我用一个可选的点 + 距离参数来扩展这个查询。当使用这些参数时,查询会使用它们。

现在,仅搜索 varchar 列的速度非常快。仅搜索纬度/经度(点)+ 距离也很快。但是当我将两者结合起来时,它变得非常慢。

知道我可能做错了什么,或者我应该如何设置我的索引吗?

现在我有这些索引:

PK_CompanyId(主键附带的标准索引)

IX_CompanyData(正在搜索的 VARCHAR 字段的索引,并且该索引包含的列中包含 Lat 和 Long 列)

【问题讨论】:

到目前为止,您设置了哪些索引?地理列上有空间索引吗? 向我们展示表结构(列及其类型)并解释您是否已经拥有以及什么样的索引。也请告诉我们慢查询! 只是一个幼稚的尝试,但是您是否尝试过将两个快速查询相交?那是select ... from a where geography intersect select ... from a where varchar 对不起,我离开了几天,但现在我用我的索引信息编辑了我的问题。 【参考方案1】:

开始解决我的问题,首先将我的搜索结果缩小到与公司链接的城市的纬度/经度值上。这在性能上产生了巨大的差异。

【讨论】:

距离计算效率 MSSQL 地理

...有一个运行缓慢的SQL查询,我确定它与距离计算有关。我使用这些计算进行排序,以便可以向正在寻找项目的用户提供在地理上最接近他们的结果。我使用地理函数STDistance来计算与预先计算的sql地理数据类型位置的距离。Location... 查看详情

SQL Server 2008 地理空间查询

】SQLServer2008地理空间查询【英文标题】:SQLServer2008Geospatialqueries【发布时间】:2008-10-1602:07:57【问题描述】:SQLServer2008具有新的地理数据类型。我想知道的一件事是,如果我有一个带有地理编码地址的表,我可以编写一个查询... 查看详情

使用sql oracle计算地理点之间的距离

】使用sqloracle计算地理点之间的距离【英文标题】:Calculatedistancebetweengeopointsusingsqloracle【发布时间】:2019-08-0911:07:42【问题描述】:谁知道并且可以演示如何使用毕达哥拉斯定理(SQLoracle)计算距离。表:station_idstation_geom395POI... 查看详情

SQL2008 中用于地理数据类型的距离算法

...题描述】:我想知道在地理数据类型上计算距离时SQL2008使用什么算法。有几种这样的算法,例如Haversine和Vincenty,但是我没有找到SQL2008实际使用的参考。【问题讨论】:【参考方案1】:这完全取决于与地理类 查看详情

在 sql server 2008 中使用地理数据类型的两点之间的距离?

】在sqlserver2008中使用地理数据类型的两点之间的距离?【英文标题】:DistancebetweentwopointsusingGeographydatatypeinsqlserver2008?【发布时间】:2012-01-1809:32:19【问题描述】:这是我的代码。CreateTable[dbo].[MajorCities]([CityID]intIdentity(1,1),[CityNa... 查看详情

弹性搜索5.x中地理距离查询中的返回距离

...rch5.x【发布时间】:2017-06-0215:13:44【问题描述】:我需要使用地理距离查询从弹性搜索中的搜索坐标获取距离。我试过这个curl-XGET\'http://127.0.0.1:9200/branch-master/master/_search?pretty=1\'-d\'"s 查看详情

arcgis定义查询like公式

参考技术AArcGIS定义查询是一种通过使用SQL(结构化查询语言)查询来获取ArcGIS中的特定数据集的技术。它使用两个主要元素来完成:属性查询和空间查询。属性查询允许用户从数据集中查找特定属性值。空间查询允许用户从数... 查看详情

MongoDB地理空间查询结果未按距离顺序排列

...013-05-0822:03:04【问题描述】:我是mongodb的新手,正在尝试使用地理空间从mongodb获取结果。有了这个[http://jamesroberts.name/blog/2012/03/12/mongodb-geospatial-q 查看详情

使用地理跟踪和 SQL 查询

】使用地理跟踪和SQL查询【英文标题】:UsingGeoTrackingandanSQLquery【发布时间】:2012-07-2620:45:01【问题描述】:我正在构建一个数据库,用户将能够在其中输入搜索字段以查找他们正在寻找的内容,并且我需要以最接近用户的人将... 查看详情

优化 sql 查询以提高效率

...行表上大约在0.1175秒内返回。但是,我只需要最低距离,使用内置orderby太慢了。有什么方法可以跟踪运行的最小值并直接给我吗?例如,如果我有这些结果:citya-45kmcityb-48kmcityc-12 查看详情

使用地理位置按距离排序提高性能

】使用地理位置按距离排序提高性能【英文标题】:Improveperformanceusinggeolocationtosortbydistance【发布时间】:2016-10-2120:34:54【问题描述】:我必须构建一个posts表的结构来处理大量数据(比如说,100万行),尤其是这两个字段:latit... 查看详情

使用 SQL Server 2008 地理类型的查询点

】使用SQLServer2008地理类型的查询点【英文标题】:QuerypointsusingSQLServer2008geographytype【发布时间】:2010-05-0715:05:58【问题描述】:我有一个地理类型的表,我想运行查询以查找特定纬度/经度25英里范围内的所有行。完成此操作的... 查看详情

使用 MySQL 查找距离内的点

】使用MySQL查找距离内的点【英文标题】:FindpointswithinadistanceusingMySQL【发布时间】:2014-02-1815:29:12【问题描述】:我对使用MySql的空间sql查询有疑问;我有一张带有纬度和经度列的表格;我会使用我的距离(半径)获得离我的地... 查看详情

使用 ElasticSearch 的 AWS DynamoDB 地理空间查询

】使用ElasticSearch的AWSDynamoDB地理空间查询【英文标题】:AWSDynamoDBgeospatialqueryusingElasticSearch【发布时间】:2018-12-1602:49:45【问题描述】:我将带有地理坐标标记的交易存储在DynamoDB表中。我想做一个地理空间查询来查找所有交易... 查看详情

T-SQL:这个地理距离算法是不是没有考虑地球曲率

】T-SQL:这个地理距离算法是不是没有考虑地球曲率【英文标题】:T-SQL:doesthisgeographicdistancealgorithmfailtotakecurvatureofearthintoaccountT-SQL:这个地理距离算法是否没有考虑地球曲率【发布时间】:2013-06-0614:25:30【问题描述】:下面的... 查看详情

使用 elasticsearch java API 以使用用户的地理位置计算距离

】使用elasticsearchjavaAPI以使用用户的地理位置计算距离【英文标题】:UsingelasticsearchjavaAPIinordertocomputeadistanceusingtheuser\'sgeolocation【发布时间】:2016-03-3020:26:41【问题描述】:我想使用java客户端API在文档的响应中返回一个计算字... 查看详情

elasticsearch地理距离过滤器,但距离在文档上而不是在查询中

】elasticsearch地理距离过滤器,但距离在文档上而不是在查询中【英文标题】:elasticserarchgeodistancefilterbutdistanceisondocumeninsteadofinthequery【发布时间】:2018-09-2719:11:08【问题描述】:我有带有“xyz”的条目愿意开车到某个人的一定... 查看详情

如何使用 SQL 查询将值传递给具有空间/地理数据类型的存储过程

】如何使用SQL查询将值传递给具有空间/地理数据类型的存储过程【英文标题】:Howtopassvaluetostoredprocedurewithspatial/geographydatatypeusingSQLquery【发布时间】:2018-02-1821:41:03【问题描述】:我是一名学生,经过2小时搜索答案后,我希望... 查看详情