После подготовки ответа на этот вопрос я обнаружил, что не могу подтвердить свой ответ.
В моем первом задании программирования мне сказали, что запрос в предикате IN () выполняется для каждой строки, содержащейся в родительском запросе, и поэтому следует избегать использования IN.
Например, с учетом запроса:
SELECT count(*) FROM Table1 WHERE Table1Id NOT IN (
SELECT Table1Id FROM Table2 WHERE id_user = 1)
Table1 Rows | # of "IN" executions
----------------------------------
      10    |       10
     100    |      100
    1000    |     1000
   10000    |    10000
Это правильно? Как работает предикат IN?