0

我有一个有趣的问题。我有一个由 GeoServer 在非规范化表上生成的选择语句。查询的结构是这样的


从 TABLE中选择“the_geom”.STAsBinary() 作为“the_geom” ,
其中 [一堆 ands 和 ors 条件]
AND
“the_geom”.Filter(geometry::STGeomFromText('') = 1;

这个问题大约需要 6 分钟。如果我跳过空间条件,这个问题大约需要 1 秒。数据库大约 40GB,SQL Server 2014,26GB RAM。我有非空间部分的空间索引和其他索引。空间索引的网格大小约为 600。

所以我的问题是,是否有什么方法可以让这个问题变得更快?我可以在 SQL Server 中做任何 tweeks 吗?

4

1 回答 1

1

问题是空间索引不包含任何列或由其他列搜索。因此,如果您的条件the_geom".Filter(geometry::STGeomFromText('') = 1返回许多行,则性能可能会很差。

在我的实践中,sql server 总是使用空间索引,如果你想使用另一个索引,你需要应用提示

于 2017-04-13T10:59:06.920 回答