【发布时间】:2011-06-20 01:20:54
【问题描述】:
哪个性能更好
IF EXISTS(Select null from table)
或
IF EXISTS(Select 1 from table)
?
【问题讨论】:
哪个性能更好
IF EXISTS(Select null from table)
或
IF EXISTS(Select 1 from table)
?
【问题讨论】:
两者执行相同,因为 EXISTS 中的 SELECT 子句永远不会被计算。您可以使用以下方法进行测试:
... EXISTS(SELECT 1/0 FROM TABLE)
这应该会触发除以零错误,但不会。
我个人更喜欢使用 NULL,因为很明显表中没有引用任何内容,因此对其他人更可见。如果不熟悉 EXISTS 子句,选择一个值(如第二个示例中的 INT 数字 1)可能会导致对正在发生的情况进行假设。
【讨论】:
SELECT 120/2 ... 没有触及表数据本身,也没有在 EXISTS 子句中。此外,如果您有一个特定的数据库 - 指定它,因为它们之间的行为可能非常不同。