我在 SQL Server 数据库中有大量照片(约 1000 万张),其地理坐标列可以为 NULL 或 NOT NULL(未放置或放置在地图上)。
我还在这个地理信息上创建了一个空间索引。
现在我正在尝试选择某个多边形内的所有照片。
有两种方法可以存储不在地图上的照片:
如果我将 NULL 分配给不在地图上的所有照片的地理位置,则此类查询的性能太慢(正如我所不理解的,空间索引根本不适用于 NULL 列)。
如果我分配
POINT(0 0)
给不在地图上的所有照片的地理位置,则性能很好,除了这个零点的情况POINT(0 0)
。此类请求也返回错误的照片(它们在地图上不存在)。
我怎样才能克服这些问题?
我应该添加包含 NULL 或 NOT NULL 位的列并从两列(此列和地理信息)创建索引吗?
更新我试图从两列创建索引,但这是不可能的,因为空间索引只包含一列带有地理信息(MSDN)。