Sql server SQL Server中地理编码表的模式设计
我想在SQL Server中缓存一个地址列表及其坐标lat+long。通常,我通过调用web服务来获得坐标,为了避免往返到该WS,我希望将所有这些WS响应存储在本地SQL Server数据库中 我想知道如何在本地SQL Server数据库中以最佳方式存储WS-Response,因为我可能有一个500k地址的列表?我在考虑以下结构:Sql server SQL Server中地理编码表的模式设计,sql-server,hash,Sql Server,Hash,我想在SQL Server中缓存一个地址列表及其坐标lat+long。通常,我通过调用web服务来获得坐标,为了避免往返到该WS,我希望将所有这些WS响应存储在本地SQL Server数据库中 我想知道如何在本地SQL Server数据库中以最佳方式存储WS-Response,因为我可能有一个500k地址的列表?我在考虑以下结构: AddressHash BIGINT -- PK, clustered index, --obtained by applying a hashing algori
AddressHash BIGINT -- PK, clustered index,
--obtained by applying a hashing algorith (SHA-1?) of
--Street|StreetNumber|Zip|City|County|Country
Lat DECIMAL
Long DECIMAL
1/你觉得怎么样
2/您是否推荐更好=更快的哈希算法
在这种情况下,3/BIGINT是最佳数据类型吗
4/在SQL Server中存储这些数据还有其他最佳方法吗
感谢您的输入。如果有专门用于存储地理数据的数据类型。。。哦,等等,有
关于bigint问题,请使用hashbytes函数返回的任何数据类型。geography数据类型对地理代码没有多大帮助。反向地理编码+空间索引,是的。为什么地理不适合这个?你会问这张桌子,有了这个地址,它在地球上的什么地方?地理点是一个合适的答案。地理点需要22个字节,Long和Lat DEC9,6各需要5个字节,因此节省了存储空间。此外,在插入过程中,将long和lat转换为地理位置的成本。。。地理数据类型最大的好处是可以访问它们的空间函数和索引。地理编码不需要这些。如果该表将用于其他需要这些空间功能和索引的目的,例如反向地理编码,那么当然可以。您能描述一下常见的数据访问模式吗?