【问题标题】:Does SQL Server support statistics on geometry column?SQL Server 是否支持几何列的统计信息?
【发布时间】:2017-04-12 04:34:09
【问题描述】:

我有一个关于空间数据的查询。在执行计划中,我看到警告,该地理列没有统计信息。

我在此列上有索引,但我无法创建统计信息。

  1. SQL Server 是否支持几何列的统计信息?
  2. 如何避免此警告?

【问题讨论】:

    标签: sql-server spatial-query spatial-index


    【解决方案1】:

    反过来:

    1. SQL Server 似乎不支持几何/地理列的统计信息。这是一个简单的演示:

      创建表#foo(g几何); 在 #foo (g) 上创建统计信息 foo_g;

    当我运行它时,我收到以下错误:

    消息 1978,级别 16,状态 1,第 3 行表 '#foo' 中的列 'g' 属于 在索引中用作键列无效的类型或 统计数据。

    1. 我认为你不会。我希望优化器足够聪明,可以说“该列永远不会有统计信息(作为上述的自然结果)并且不会抱怨它。但是唉,它是 Gotham 拥有的优化器,而不是优化器 Gotham 值得

    【讨论】:

    • 在查询计划中,我看到服务器需要 40000000 行,但它只有 481 行 :) 而且,我认为这可能会导致问题
    • 确实如此。如果不了解您的查询(和空间索引)的更多信息,我很难说没有陈词滥调可以做些什么。
    【解决方案2】:

    它支持边界框和网格级别而不是统计信息。

    如果您稍微倾斜一下头,您会意识到边界框实际上是一个自定义统计直方图,它控制您的几何点(对象)适合哪个小框。然后网格级别控制搜索到该边界框的深度。

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多