Я пытался использовать результат SELECT внутри оператора IN другого SELECT, но это занимает 15 минут, но если я выполняю отдельные запросы (Query1 и Query 2 ниже), я получаю результаты примерно через 2 минуты
Я пытался использовать результат SELECT внутри предложения IN другого SELECT, но он действительно медленный
Query 1 takes 1 minute
SELECT Id_A
FROM [Database]..[Table_A]
WHERE location = 'US'
AND datetime_in >= DATEADD(DAY,-30,GETDATE())
AND (
CASE WHEN date_sent IS NULL THEN DATEDIFF(hh, datetime_in, GETDATE())
WHEN date_sent IS NOT NULL THEN DATEDIFF(hh, datetime_in, ship_date)
ELSE 0 END) > 120
Query 2 takes 10 seconds
SELECT *
FROM [Database]..[Table_B]
WHERE Id_B IN (HERE I INSERT MANUALLY ALL THE Table_A..Id_A)
Query 3 taking more then 15 minutes this is the one giving me issues
SELECT *
FROM [Database]..[Table_B]
WHERE Id_B IN (SELECT Id_A
FROM [Database]..[Table_A]
WHERE location = 'US'
AND datetime_in >= DATEADD(DAY,-30,GETDATE())
AND (CASE WHEN date_sent IS NULL
THEN DATEDIFF(hh, datetime_in, GETDATE())
WHEN date_sent IS NOT NULL
THEN DATEDIFF(hh, datetime_in, ship_date)
ELSE 0 END) > 120)
Я пытаюсь оптимизировать, чтобы запрос 3 мог быть выполнен и дать результаты в меньшем количестветогда 5 минут может быть?