我应该为大型表上的地理空间数据创建垂直分区

时间:2014-06-24 12:58:40

标签: sql indexing sql-server-2012 geospatial partitioning

我有一个大表(> 700,000行且不断增长)的联系人数据,其中包括:

  • 具有空间索引的多边形
  • 带有全文索引的1000个字符文本字段
  • 约25个其他字段,其中一些用于搜索(名称,参考,id等)

此表在多边形字段上查看大量查询,在自由文本字段上查看大量单独查询。 (在同一查询中绝不是多边形和全文)。

我们最近在此表的查询中遇到了非常糟糕的性能,并且正在考虑创建一个“垂直分区”以将空间数据放入新表中并使用视图将两者结合起来以便应用程序看到相同的数据和以前一样。

这样对表进行分区是否会提高全文和空间索引查询的性能,即使结果需要连接两个表?

1 个答案:

答案 0 :(得分:1)

简短回答 - 是的。

将表格拆分为两个,只有几何图形,几何查询似乎总体上更快。全文查询的性能大致相同。

我怀疑这是因为只有几何数据的新表格要小得多,而且对它的查询可以选择较少的索引,从而减少了执行计划。

但是 - 查询在其中一个基表中具有几何列的视图可以正常工作 - 但是对于查询区域和空间数据密度的某些组合,未选择空间索引且性能非常慢。您无法将空间索引的索引提示传递给视图上的查询,因此我最终直接查询了视图的基表,因此我可以强制使用空间索引。