【发布时间】:2015-01-22 01:03:31
【问题描述】:
select 1 from 和 select 0 from 或 select any integer from 有什么区别吗?
我知道 select * from 是一项昂贵的操作。
但是,select 1 from 不同于 select 0 from 和 or select 29 from?
在仅检查表/存储过程是否存在的上下文中,如果存在,则删除它并重新创建(在这些情况下)
【问题讨论】:
-
不应该,因为结果会被忽略(我通常使用
SELECT null),但您必须尝试两种方式并进行比较才能确定。 -
@DStanley:谢谢,我不知道如何找到性能差异,另外,我从没想过使用 null,好主意,我会使用 null 并检查:) :)
-
运行两个不同的查询并比较它所花费的时间(手动或查看客户端统计信息是 SSMS)
-
比较查询计划 (CTRL-L)。无论您在选择中输入什么,它们都是相同的。与仅比较所用时间相比,这消除了任何瞬时 I/O 或缓存影响。
-
@DStanley:谢谢,我使用了客户端统计信息,我可以看到使用 * 花费的时间更少,虽然使用 1 和 0 等只是相差 1。但是,使用 null 需要更高一点,但是差别不大:)
标签: sql sql-server sql-server-2008