Почему выбор с подвыборкой не возвращает строки в условии намного медленнее? - PullRequest
1 голос
/ 25 мая 2020

У меня довольно сложный выбор, который выглядит так.

select Columns 
  from TablesWithJoins 
 where MainColumn in (select AnotherColumn from OtherTablesWithJoins)

Проблема в том, что выборка обычно заканчивается менее чем за 100 мс. (sql план )

enter image description here

Когда подзапрос не возвращает строк, время его выполнения намного больше, чем если бы оно было чтобы вернуть все записи без условий. (sql план )

enter image description here

Есть идеи, почему это происходит и как этого избежать?

Добавлена ​​версия с exists. (sql план )

...