sql-server - SQL 中的地理空间数据

标签 sql-server geospatial sqlgeography

我最近一直在尝试地理数据类型并且非常喜欢它。但我无法决定是否应该从当前模式转换为地理类型,该模式将两个单独的数字(9,5)字段中的纬度和经度存储。我计算了这两种类型的大小,表示一个点的纬度/经度方式为单个点 28 字节,而地理类型为 26。空间上没有很大的增益,但在执行地理空间操作(相交、距离测量等)方面有巨大的改进。 )目前使用笨拙的存储过程和标量函数来处理。我想知道的是指数。地理数据类型是否需要更多空间来索引数据?我有一种感觉,即使列中存储的实际数据较少,我认为地理空间索引的工作方式最终会为它们分配更大的空间。

附注附带说明一下,SQL Server 2008(不是 R2)似乎不会自动搜索地理空间索引,除非明确告知使用 WITH(INDEX()) 子句

最佳答案

在我看来,你绝对应该只使用空间类型。空间类型针对空间查询进行了优化,如果您需要空间查询,那么我认为这是一个简单的选择。

作为副作用,您可以摆脱地理函数和过程,因为它们(可能)内置于 SQL Server 2008 中。不过需要注意的是,您可能需要花一些时间优化空间索引,但这取决于你的具体情况。

关于sql-server - SQL 中的地理空间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942332/

相关文章:

php - 在插入时获取一张表的 auto_increment 值的最佳方法

mysql - mysql中计算空间距离并按距离排序

.net - 从“System.Data.Entity.Spatial.DbGeography”上的 'WellKnownValue' 获取值时出错

sql-server - 在 SQL 2008/12 中压缩 VARCHAR - 看不到结果

sql-server - LINQ to SQL - 插入时死锁

sql - 如何在 SQL Server 中使用 CONTAINSTABLE 获得 'combined' OR 短语排名?

r - 求R中数据点一定半径内的点数

Mongodb:在两个字段的数组上创建索引

sql-server-2008 - Ms SQL geography.STDistance 返回错误的距离

SQL Server STIntersects 查询返回误报