代码之家  ›  专栏  ›  技术社区  ›  usr

行计数估计未使用SQL Server 2008多列统计信息

  •  0
  • usr  · 技术社区  · 15 年前

    我有一个表,表中有A列和B列,它们之间的关系如下:

    A == 1 => B == 3
    A == 2 => B == 0
    A == 3 => B == 7
    

    具有 = & gt; 意思 具有很高的可能性 . 我想这样查询:

    where A = 2 and B = 3 --very few rows should match
    

    所以我创建了(a,b)的统计数据。然而,查询优化器完全错误地估计了行数的10倍。有什么想法吗?联合柱状图应该允许非常精确的估计。btw:基数(a)=10,基数(b)=5

    1 回复  |  直到 15 年前
        1
  •  1
  •   Community CDub    8 年前

    我怀疑乐观者忽略了统计数据,因为整个查询都很重要,而不仅仅是WHERE子句。或者您选择了*。或者采样率太低(您使用了fullscan吗?)

    如果您创建一个索引,它有索引统计信息呢?包裹物也能覆盖吗?

    我从未创建过自己的列统计信息(除非图形查询计划提到过)。如果我需要创建它们,索引很可能更好地满足我的目的。

    编辑: