相交的空间索引

时间:2015-05-11 11:02:18

标签: entity-framework indexing azure-sql-database geospatial spatial-index

我正在使用SQL Azure和Entity Framework 6,需要找到5000个区域(多边形)与点相交的区域。

我的代码看起来有点像这样

List<object> res = context.Areas
                .Where(a => a.Polygon.Intersects(usersLoction))
                .ToList();

这转化为看起来有点像这样的SQL

SELECT *
FROM Areas a
WHERE a.Polygon.STIntersects(0xE6100000010CBD14289E87AA4A403CACC9610DEB18C0) = 1

此查询的性能是绝对的,需要7秒多的时间才能在SQL Azure上搜索5000个区域。多边形通常是环状的。

我不是这个领域的专家,但到目前为止,我已经知道可以创建一个空间索引,在对该区域执行完整的交叉检查之前预先过滤结果集。我认为这个索引在我的情况下会非常好用,因为这些区域通常非常简单,如果SQL将每个多边形视为一个矩形,它会很好地过滤掉结果。

但经过几个小时的研究后,我不知道如何在Azure中创建和使用空间索引。

请问有些灵魂请提供添加我需要的索引的命令吗?

0 个答案:

没有答案