Как улучшить этот встроенный запрос? - PullRequest
0 голосов
/ 27 февраля 2019

Я разработчик отдела продаж, у меня есть требование написать 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 Ответ

0 голосов
/ 27 февраля 2019

Попробуйте эти запросы:

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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...