This document compares the NOT EXISTS and NOT IN operators in SQL queries. It notes that NOT EXISTS is more efficient because it can stop evaluating the subquery after finding a single match, while NOT IN must scan the entire subquery. The document also shows that NOT IN performs a full table scan of the subquery for each row in the main query, while NOT EXISTS only scans tables twice total. It demonstrates these differences through examples run on two tables, comparing the session statistics and trace files. New features in Oracle 11g are also discussed that help optimize NOT IN queries.