我最近一直在尝试地理数据类型并且非常喜欢它。但我无法决定是否应该从当前模式转换为地理类型,该模式将两个单独的数字(9,5)字段中的纬度和经度存储。我计算了这两种类型的大小,表示一个点的纬度/经度方式为单个点 28 字节,而地理类型为 26。空间上没有很大的增益,但在执行地理空间操作(相交、距离测量等)方面有巨大的改进。 )目前使用笨拙的存储过程和标量函数来处理。我想知道的是指数。地理数据类型是否需要更多空间来索引数据?我有一种感觉,即使列中存储的实际数据较少,我认为地理空间索引的工作方式最终会为它们分配更大的空间。
附注附带说明一下,SQL Server 2008(不是 R2)似乎不会自动搜索地理空间索引,除非明确告知使用 WITH(INDEX()) 子句
最佳答案
在我看来,你绝对应该只使用空间类型。空间类型针对空间查询进行了优化,如果您需要空间查询,那么我认为这是一个简单的选择。
作为副作用,您可以摆脱地理函数和过程,因为它们(可能)内置于 SQL Server 2008 中。不过需要注意的是,您可能需要花一些时间优化空间索引,但这取决于你的具体情况。
关于sql-server - SQL 中的地理空间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942332/