SQL聚合函数何时结束

  • 本文关键字:何时 结束 函数 SQL sql
  • 更新时间 :
  • 英文 :


我有一个这样的查询:

SELECT TOP(1)
CASE WHEN COUNT(Example_ID) > 0 THEN 1 ELSE 0 END AS 'Exists'
FROM Example
WHERE Example_ID IS NULL
;

我的问题是,如果我使用聚合,它将从整个表中获得数据,但如果我使用标准查询,即:

SELECT TOP(1)
1 AS 'Exists'
FROM Example
WHERE Example_ID > 0
;

它会在第一个找到的地方停下来吗?哪一个有更多的优化?

看到两个查询都有一个TOP 1子句来回答性能,这实际上取决于评估查询计划。

数据和索引会影响性能,因此在执行时,答案非常特定于您的数据集。

如果Example_ID大部分是而不是null,则第二个查询可能会执行得更快,因为在表扫描中达到null值的可能性较小,除非Example_ID上有索引,否则如果索引按升序排序,则第一个查询应在第二个询问之前完成。

SELECT子句中的字段和表达式在很大程度上与本讨论无关,尽管一旦过滤了结果集,最接近原始形式的查询可能会更快地返回。


在SQL性能问题中,我们总是建议提供执行计划,我们可以帮助解释为什么会发生这种情况以及如何改进它。

最新更新