我有一个有趣的问题。我有一个由GeoServer在非规范化表上生成的select语句。查询的结构是这个
选择“the_geom”.STAsBinary()为“the_geom”
来自表
哪里[一堆ands和ors条件]
和
“the_geom”.Filter(geometry :: STGeomFromText('')= 1;
此问题大约需要6分钟。如果我跳过空间条件,问题大约需要1秒钟。该数据库大约40GB,SQL Server 2014,26GB的RAM。我有一个空间索引和非空间部分的其他索引。空间索引的网格大小约为600。
所以我的问题是,如果有什么方法可以让这个问题更快?我可以在SQL Server中做的任何tweek?
答案 0 :(得分:1)
问题是空间索引不包括任何列或由另一列寻找。因此,如果您的条件the_geom".Filter(geometry::STGeomFromText('') = 1
返回许多行,则性能可能会很差。
在我的练习中,sql server始终使用空间索引,如果要使用其他索引,则需要应用提示