代码之家  ›  专栏  ›  技术社区  ›  Shankar Panda

如何改进这个内联查询?

  •  0
  • Shankar Panda  · 技术社区  · 6 年前

    我是一个Salesforce开发人员,我有一个写SQL查询的需求,我做了,但是性能非常低。你能帮我一下吗?

    我的问题是这样的

    select col1, col2,col3,col4 from table1 where col1 is not null and col2='ABC' and
    (
                col3 IN (SELECT field1 FROM table 2)    
                OR col4 in('A','B','C'
            )
    

    有什么方法可以让我优化它以获得更好的性能吗?

    更新

    我用左外接法来实现,对吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   1pluszara    6 年前

    尝试以下查询:

    SELECT col1, col2,col3,col4 FROM TABLE1 T1 
    WHERE (EXISTS (SELECT 1 FROM TABLE2 T2 WHERE T1.COL3 = T2.FIELD1)
       OR COL4 IN ('A','B','C'))
    
    SELECT col1, col2,col3,col4 FROM TABLE1 T1 
    WHERE EXISTS (SELECT 1 FROM TABLE2 T2 WHERE T1.COL3 = T2.FIELD1)
    UNION
    SELECT col1, col2,col3,col4 FROM TABLE1 T1 WHERE COL4 IN ('A','B','C')