是否在WHERE子句中添加1 = 1会导致性能下降?

时间:2013-04-23 13:11:51

标签: teradata

考虑以下SQL:

select * from dbname.tablename
where
    field1 = 'a' and
    field2 = 'b' and
    field3 = 'c' and
    1=1

您可能想知道为什么我会在WHERE子句的末尾添加1=1。对于临时查询,我执行此操作以便可以注释掉任何条件组合而无需修改SQL。使用此SQL,我可以注释掉field1 = 'a' and,并且由于尾随1=1条件,SQL将起作用。没有这个小技巧,请考虑这个SQL:

    field1 = 'a' and
    field2 = 'b' and
    field3 = 'c'

注释掉field3 = 'c'将会破坏SQL,因为它会将field2 = 'b' and视为最终条件,它会咆哮你,“和什么?”

我之所以这样问是因为我在将SQL粘贴到生产查询之前忘记从WHERE子句中删除1=1。我想知道这是否会影响性能。 1=1是一个恒定的条件,即使记录集包含10,000行,这里是否真的进行了剧烈的计算?

1 个答案:

答案 0 :(得分:1)

用甜言蜜语来说 NO

请参阅 Answer