0

我有以下问题:

SQL 服务器 2005

  • 表:文件
  • 记录:400,000
  • 字段值不是索引
  • 询问:

    SELECT * FROM Documents WHERE value = 0  
    

案例一:

  • 所有 400'000 条记录的值 = NULL
  • 性能 = X 秒

案例 B:

  • 200'000 条记录的值 = NULL
  • 200'000 条记录的值 <> NULL
  • 性能 = X + Y 秒

案例三:

  • 400'000 条记录的值 <> NULL
  • 性能 = X + Y + Z 秒

这是一种常见的行为,还是我必须在其他地方搜索性能等级的原因?

4

1 回答 1

1

value您几乎可以肯定该列上没有索引。鉴于此假设,您的结果并不令人惊讶。 NULL在内部存储为单独的位,比执行数字比较更易于查找(和拒绝)。

如果你有一个索引,那么我会对这些结果感到有些惊讶。如果您发布有关表格的确切数字(列宽)以及您看到的确切结果而不是“X、Y 和 Z”,这也会有所帮助。和往常一样,在检查性能问题时,请查看查询计划

于 2013-07-10T20:34:19.217 回答